only escape glob pattern
This commit is contained in:
parent
93730a090b
commit
f9c337dd21
|
@ -497,7 +497,8 @@ class Hooks {
|
||||||
|
|
||||||
// handle share-keys
|
// handle share-keys
|
||||||
$localKeyPath = $view->getLocalFile($baseDir . 'share-keys/' . $params['oldpath']);
|
$localKeyPath = $view->getLocalFile($baseDir . 'share-keys/' . $params['oldpath']);
|
||||||
$matches = glob(preg_quote($localKeyPath) . '*.shareKey');
|
$escapedPath = preg_replace('/(\*|\?|\[)/', '[$1]', $localKeyPath);
|
||||||
|
$matches = glob($escapedPath . '*.shareKey');
|
||||||
foreach ($matches as $src) {
|
foreach ($matches as $src) {
|
||||||
$dst = \OC\Files\Filesystem::normalizePath(str_replace($params['oldpath'], $params['newpath'], $src));
|
$dst = \OC\Files\Filesystem::normalizePath(str_replace($params['oldpath'], $params['newpath'], $src));
|
||||||
|
|
||||||
|
|
|
@ -488,7 +488,8 @@ class Keymanager {
|
||||||
$view->unlink($baseDir . $filePath);
|
$view->unlink($baseDir . $filePath);
|
||||||
} else {
|
} else {
|
||||||
$localKeyPath = $view->getLocalFile($baseDir . $filePath);
|
$localKeyPath = $view->getLocalFile($baseDir . $filePath);
|
||||||
$matches = glob(preg_quote($localKeyPath) . '*.shareKey');
|
$escapedPath = preg_replace('/(\*|\?|\[)/', '[$1]', $localKeyPath);
|
||||||
|
$matches = glob($escapedPath . '*.shareKey');
|
||||||
foreach ($matches as $ma) {
|
foreach ($matches as $ma) {
|
||||||
$result = unlink($ma);
|
$result = unlink($ma);
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
|
@ -547,7 +548,10 @@ class Keymanager {
|
||||||
*/
|
*/
|
||||||
private static function recursiveDelShareKeys($dir, $userIds) {
|
private static function recursiveDelShareKeys($dir, $userIds) {
|
||||||
foreach ($userIds as $userId) {
|
foreach ($userIds as $userId) {
|
||||||
$matches = glob(preg_quote($dir) . '/*' . preg_quote('.' . $userId . '.shareKey'));
|
$extension = '.' . $userId . '.shareKey';
|
||||||
|
$escapedDir = preg_replace('/(\*|\?|\[)/', '[$1]', $dir);
|
||||||
|
$escapedExtension = preg_replace('/(\*|\?|\[)/', '[$1]', $extension);
|
||||||
|
$matches = glob($escapedDir . '/*' . $escapedExtension);
|
||||||
}
|
}
|
||||||
/** @var $matches array */
|
/** @var $matches array */
|
||||||
foreach ($matches as $ma) {
|
foreach ($matches as $ma) {
|
||||||
|
@ -556,7 +560,7 @@ class Keymanager {
|
||||||
'Could not delete shareKey; does not exist: "' . $ma . '"', \OCP\Util::ERROR);
|
'Could not delete shareKey; does not exist: "' . $ma . '"', \OCP\Util::ERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$subdirs = $directories = glob(preg_quote($dir) . '/*', GLOB_ONLYDIR);
|
$subdirs = $directories = glob($escapedDir . '/*', GLOB_ONLYDIR);
|
||||||
foreach ($subdirs as $subdir) {
|
foreach ($subdirs as $subdir) {
|
||||||
self::recursiveDelShareKeys($subdir, $userIds);
|
self::recursiveDelShareKeys($subdir, $userIds);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue