diff options
author | Robin Appelman <robin@icewind.nl> | 2023-08-21 19:45:03 +0200 |
---|---|---|
committer | Robin Appelman <robin@icewind.nl> | 2024-03-08 14:20:14 +0100 |
commit | ea8a774a0a2079a2ebe44e8d4a62162d80754e23 (patch) | |
tree | e33759b8e9b2bcedaa19f1e5bbc0ec7a103629e1 /lib/private/Files/Storage | |
parent | 47ebc1119af919ad2248636f82990ccc2bfc36fa (diff) | |
download | nextcloud-server-ea8a774a0a2079a2ebe44e8d4a62162d80754e23.tar.gz nextcloud-server-ea8a774a0a2079a2ebe44e8d4a62162d80754e23.zip |
fix: add some recrusive detection/prevention
Signed-off-by: Robin Appelman <robin@icewind.nl>
Diffstat (limited to 'lib/private/Files/Storage')
-rw-r--r-- | lib/private/Files/Storage/Wrapper/Wrapper.php | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/private/Files/Storage/Wrapper/Wrapper.php b/lib/private/Files/Storage/Wrapper/Wrapper.php index 9f5564b4490..665914df2a7 100644 --- a/lib/private/Files/Storage/Wrapper/Wrapper.php +++ b/lib/private/Files/Storage/Wrapper/Wrapper.php @@ -654,4 +654,15 @@ class Wrapper implements \OC\Files\Storage\Storage, ILockingStorage, IWriteStrea public function getDirectoryContent($directory): \Traversable { return $this->getWrapperStorage()->getDirectoryContent($directory); } + + public function isWrapperOf(IStorage $storage) { + $wrapped = $this->getWrapperStorage(); + if ($wrapped === $storage) { + return true; + } + if ($wrapped instanceof Wrapper) { + return $wrapped->isWrapperOf($storage); + } + return false; + } } |