diff options
author | Julius Härtl <jus@bitgrid.net> | 2021-07-29 09:27:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-29 09:27:53 +0200 |
commit | db7ffb0bf906479c740d73fee0d469712d4a236b (patch) | |
tree | 8fcfe987ae58c4703ae96b4337aef6db8f763645 /lib/private | |
parent | 9a9df238a6f60fb43cd89e1a604091edb3077686 (diff) | |
parent | 4d5e8bcb99721930ef8c4386e186b8341e598926 (diff) | |
download | nextcloud-server-db7ffb0bf906479c740d73fee0d469712d4a236b.tar.gz nextcloud-server-db7ffb0bf906479c740d73fee0d469712d4a236b.zip |
Merge pull request #28175 from nextcloud/jail-search-root
Diffstat (limited to 'lib/private')
-rw-r--r-- | lib/private/Files/Cache/Wrapper/CacheJail.php | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/lib/private/Files/Cache/Wrapper/CacheJail.php b/lib/private/Files/Cache/Wrapper/CacheJail.php index 38f47668d5d..2dff76333ad 100644 --- a/lib/private/Files/Cache/Wrapper/CacheJail.php +++ b/lib/private/Files/Cache/Wrapper/CacheJail.php @@ -306,17 +306,21 @@ class CacheJail extends CacheWrapper { } public function getQueryFilterForStorage(): ISearchOperator { - return new SearchBinaryOperator(ISearchBinaryOperator::OPERATOR_AND, - [ - $this->getCache()->getQueryFilterForStorage(), - new SearchBinaryOperator(ISearchBinaryOperator::OPERATOR_OR, - [ - new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'path', $this->getGetUnjailedRoot()), - new SearchComparison(ISearchComparison::COMPARE_LIKE, 'path', $this->getGetUnjailedRoot() . '/%'), - ], - ) - ] - ); + if ($this->root !== '' && $this->root !== '/') { + return new SearchBinaryOperator(ISearchBinaryOperator::OPERATOR_AND, + [ + $this->getCache()->getQueryFilterForStorage(), + new SearchBinaryOperator(ISearchBinaryOperator::OPERATOR_OR, + [ + new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'path', $this->getGetUnjailedRoot()), + new SearchComparison(ISearchComparison::COMPARE_LIKE, 'path', $this->getGetUnjailedRoot() . '/%'), + ], + ) + ] + ); + } else { + return $this->getCache()->getQueryFilterForStorage(); + } } public function getCacheEntryFromSearchResult(ICacheEntry $rawEntry): ?ICacheEntry { |