aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/Files/Storage
diff options
context:
space:
mode:
authorRobin Appelman <robin@icewind.nl>2023-08-21 19:45:03 +0200
committerRobin Appelman <robin@icewind.nl>2024-03-08 14:20:14 +0100
commitea8a774a0a2079a2ebe44e8d4a62162d80754e23 (patch)
treee33759b8e9b2bcedaa19f1e5bbc0ec7a103629e1 /lib/private/Files/Storage
parent47ebc1119af919ad2248636f82990ccc2bfc36fa (diff)
downloadnextcloud-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.php11
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;
+ }
}