From c4505160a0a75f91609f054269d59d93f0f8e6e6 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 bf459b2ff8691..b773306ec4543 100644 --- a/lib/private/Files/Cache/Cache.php +++ b/lib/private/Files/Cache/Cache.php @@ -663,7 +663,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 fe85d7d05d127f9ca04a39674123ca9da95c0201 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 b773306ec4543..227079b87bbfb 100644 --- a/lib/private/Files/Cache/Cache.php +++ b/lib/private/Files/Cache/Cache.php @@ -663,7 +663,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); }