Browse Source
fix: don't return null for SharedStorage::getWrapperStorage with share recursion
Signed-off-by: Robin Appelman <robin@icewind.nl>
pull/44132/head
Robin Appelman
2 years ago
committed by
Côme Chilliet
No known key found for this signature in database
GPG Key ID: A3E2F658B28C760A
1 changed files with
10 additions and
0 deletions
-
apps/files_sharing/lib/SharedStorage.php
|
|
|
@ -137,6 +137,16 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto |
|
|
|
|
|
|
|
private function init() { |
|
|
|
if ($this->initialized) { |
|
|
|
if (!$this->storage) { |
|
|
|
// marked as initialized but no storage set
|
|
|
|
// this is probably because some code path has caused recursion during the share setup
|
|
|
|
// we setup a "failed storage" so `getWrapperStorage` doesn't return null.
|
|
|
|
// If the share setup completes after this the "failed storage" will be overwritten by the correct one
|
|
|
|
$this->logger->warning('Possible share setup recursion detected'); |
|
|
|
$this->storage = new FailedStorage(['exception' => new \Exception('Possible share setup recursion detected')]); |
|
|
|
$this->cache = new FailedCache(); |
|
|
|
$this->rootPath = ''; |
|
|
|
} |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
|