diff options
author | Christoph Wurst <christoph@winzerhof-wurst.at> | 2023-06-01 20:19:24 +0200 |
---|---|---|
committer | Simon L <szaimen@e.mail.de> | 2023-06-12 09:44:48 +0200 |
commit | b8c61b3515ef406c4feafc851f12262e417ba157 (patch) | |
tree | 5c45a7174c899ef5dc1618158f57948cf7a551ff /apps/files_external | |
parent | c93be182dc0172eed377ba70ce54cd7c83689764 (diff) | |
download | nextcloud-server-b8c61b3515ef406c4feafc851f12262e417ba157.tar.gz nextcloud-server-b8c61b3515ef406c4feafc851f12262e417ba157.zip |
fix(caching): Avoid checking existence before fetching
The cache might expire between checking for key existence and fetching
the value. In this rare case the code continues with a null value when
it doesn't expect one.
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Diffstat (limited to 'apps/files_external')
-rw-r--r-- | apps/files_external/lib/Lib/Storage/Swift.php | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/apps/files_external/lib/Lib/Storage/Swift.php b/apps/files_external/lib/Lib/Storage/Swift.php index 85b3727f4db..26e6c5315cb 100644 --- a/apps/files_external/lib/Lib/Storage/Swift.php +++ b/apps/files_external/lib/Lib/Storage/Swift.php @@ -126,9 +126,10 @@ class Swift extends \OC\Files\Storage\Common { * @throws \OCP\Files\StorageNotAvailableException */ private function fetchObject(string $path) { - if ($this->objectCache->hasKey($path)) { + $cached = $this->objectCache->get($path); + if ($cached !== null) { // might be "false" if object did not exist from last check - return $this->objectCache->get($path); + return $cached; } try { $object = $this->getContainer()->getObject($path); |