added helper function to escape glob pattern
Conflicts: apps/files_encryption/lib/helper.php
This commit is contained in:
parent
ec6350079f
commit
9575c2f37c
|
@ -497,7 +497,7 @@ class Hooks {
|
|||
|
||||
// handle share-keys
|
||||
$localKeyPath = $view->getLocalFile($baseDir . 'share-keys/' . $params['oldpath']);
|
||||
$escapedPath = preg_replace('/(\*|\?|\[)/', '[$1]', $localKeyPath);
|
||||
$escapedPath = Helper::escapeGlobPattern($localKeyPath);
|
||||
$matches = glob($escapedPath . '*.shareKey');
|
||||
foreach ($matches as $src) {
|
||||
$dst = \OC\Files\Filesystem::normalizePath(str_replace($params['oldpath'], $params['newpath'], $src));
|
||||
|
|
|
@ -218,7 +218,6 @@ class Helper {
|
|||
exit();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* check requirements for encryption app.
|
||||
* @return bool true if requirements are met
|
||||
|
@ -234,3 +233,14 @@ class Helper {
|
|||
return (bool) $result;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief glob uses different pattern than regular expressions, escape glob pattern only
|
||||
* @param unescaped path
|
||||
* @return escaped path
|
||||
*/
|
||||
public static function escapeGlobPattern($path) {
|
||||
return preg_replace('/(\*|\?|\[)/', '[$1]', $path);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -488,7 +488,7 @@ class Keymanager {
|
|||
$view->unlink($baseDir . $filePath);
|
||||
} else {
|
||||
$localKeyPath = $view->getLocalFile($baseDir . $filePath);
|
||||
$escapedPath = preg_replace('/(\*|\?|\[)/', '[$1]', $localKeyPath);
|
||||
$escapedPath = Helper::escapeGlobPattern($localKeyPath);
|
||||
$matches = glob($escapedPath . '*.shareKey');
|
||||
foreach ($matches as $ma) {
|
||||
$result = unlink($ma);
|
||||
|
@ -549,8 +549,8 @@ class Keymanager {
|
|||
private static function recursiveDelShareKeys($dir, $userIds) {
|
||||
foreach ($userIds as $userId) {
|
||||
$extension = '.' . $userId . '.shareKey';
|
||||
$escapedDir = preg_replace('/(\*|\?|\[)/', '[$1]', $dir);
|
||||
$escapedExtension = preg_replace('/(\*|\?|\[)/', '[$1]', $extension);
|
||||
$escapedDir = Helper::escapeGlobPattern($dir);
|
||||
$escapedExtension = Helper::escapeGlobPattern($extension);
|
||||
$matches = glob($escapedDir . '/*' . $escapedExtension);
|
||||
}
|
||||
/** @var $matches array */
|
||||
|
|
Loading…
Reference in New Issue