From 97aadbe46c918ba4fe98290e8552e9de9b5f182d Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 26 Jul 2021 17:44:52 +0200 Subject: dont apply jail search filter is on the root the extra '/' breaks things and the filter wouldn't do anything anyway except making the databases job harder Signed-off-by: Robin Appelman --- lib/private/Files/Cache/Wrapper/CacheJail.php | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'lib/private/Files/Cache') 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 { -- cgit v1.2.3