only escape glob pattern

This commit is contained in:
Björn Schießle 2013-06-14 15:07:06 +02:00
parent 08f81f3f92
commit f91b02e9b6
2 changed files with 11 additions and 8 deletions

View File

@ -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 ) {

View File

@ -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;