diff --git a/apps/files_trashbin/lib/trash.php b/apps/files_trashbin/lib/trash.php index 2d1830a38f..e06e959f8e 100644 --- a/apps/files_trashbin/lib/trash.php +++ b/apps/files_trashbin/lib/trash.php @@ -193,10 +193,11 @@ class Trashbin { $rootView->rename($sharekeys, $user.'/files_trashbin/share-keys/' . $filename . '.d' . $timestamp); } else { // get local path to share-keys - $localShareKeysPath = $rootView->getLocalFile($sharekeys); + $localShareKeysPath = $rootView->getLocalFile($sharekeys); + $escapedLocalShareKeysPath = preg_replace('/(\*|\?|\[)/', '[$1]', $localShareKeysPath); // handle share-keys - $matches = glob(preg_quote($localShareKeysPath).'*.shareKey'); + $matches = glob($escapedLocalShareKeysPath.'*.shareKey'); foreach ($matches as $src) { // get source file parts $pathinfo = pathinfo($src); @@ -737,14 +738,15 @@ class Trashbin { */ private static function getVersionsFromTrash($filename, $timestamp) { $view = new \OC\Files\View('/'.\OCP\User::getUser().'/files_trashbin/versions'); - $versionsName = $view->getLocalFile($filename); + $versionsName = $view->getLocalFile($filename).'.v'; + $escapedVersionsName = preg_replace('/(\*|\?|\[)/', '[$1]', $versionsName); $versions = array(); if ($timestamp ) { // fetch for old versions - $matches = glob( $versionsName.'.v*.d'.$timestamp ); + $matches = glob( $escapedVersionsName.'*.d'.$timestamp ); $offset = -strlen($timestamp)-2; } else { - $matches = glob( $versionsName.'.v*' ); + $matches = glob( $escapedVersionsName.'*' ); } foreach( $matches as $ma ) { diff --git a/apps/files_versions/lib/versions.php b/apps/files_versions/lib/versions.php index 4beb9e0fe5..757926cd77 100644 --- a/apps/files_versions/lib/versions.php +++ b/apps/files_versions/lib/versions.php @@ -241,11 +241,12 @@ class Storage { public static function getVersions($uid, $filename, $count = 0 ) { if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) { $versions_fileview = new \OC\Files\View('/' . $uid . '/files_versions'); - $versionsName = $versions_fileview->getLocalFile($filename); - + $versionsName = \OC_Filesystem::normalizePath($versions_fileview->getLocalFile($filename).'.v'); + $escapedVersionName = preg_replace('/(\*|\?|\[)/', '[$1]', $versionsName); + $versions = array(); // fetch for old versions - $matches = glob(preg_quote($versionsName).'.v*' ); + $matches = glob($escapedVersionName.'*'); if ( !$matches ) { return $versions;