From d6fe5acbecbafd9880e00afb4c80d0fd96e18793 Mon Sep 17 00:00:00 2001 From: Josh Richards Date: Thu, 3 Aug 2023 09:53:46 -0400 Subject: [PATCH 1/2] Catch more invalid cache source storage paths OC\Files\Cache\Cache::get can return string|false|null, not just string|false. - nextcloud/server#26270 added handling of false, but null is needed too. - Well, or we change the default $resullt to false, but I'm not sure if that has other ramifications and the real need here is to simply catch situations where the cache source storage path is not valid for whatever reason Related: nextcloud/server#19009 Signed-off-by: Josh Richards --- lib/private/Files/Cache/Cache.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/private/Files/Cache/Cache.php b/lib/private/Files/Cache/Cache.php index 8fe413a02065a..1d22a3835e93c 100644 --- a/lib/private/Files/Cache/Cache.php +++ b/lib/private/Files/Cache/Cache.php @@ -681,7 +681,7 @@ public function moveFromCache(ICache $sourceCache, $sourcePath, $targetPath) { $targetPath = $this->normalize($targetPath); $sourceData = $sourceCache->get($sourcePath); - if ($sourceData === false) { + if ($sourceData === false || $sourceData === null) { throw new \Exception('Invalid source storage path: ' . $sourcePath); } From 0638f58632b79e3a04c5f13ee5d554ea34884865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6?= Date: Sat, 5 Aug 2023 12:05:36 +0200 Subject: [PATCH 2/2] fix: simplify `sourceData` check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Git'Fellow <12234510+solracsf@users.noreply.github.com> Signed-off-by: John Molakvoæ --- lib/private/Files/Cache/Cache.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/private/Files/Cache/Cache.php b/lib/private/Files/Cache/Cache.php index 1d22a3835e93c..1adc14c626cf9 100644 --- a/lib/private/Files/Cache/Cache.php +++ b/lib/private/Files/Cache/Cache.php @@ -681,7 +681,7 @@ public function moveFromCache(ICache $sourceCache, $sourcePath, $targetPath) { $targetPath = $this->normalize($targetPath); $sourceData = $sourceCache->get($sourcePath); - if ($sourceData === false || $sourceData === null) { + if (!$sourceData) { throw new \Exception('Invalid source storage path: ' . $sourcePath); }