diff options
author | Robin Appelman <robin@icewind.nl> | 2023-06-28 15:48:55 +0200 |
---|---|---|
committer | Git'Fellow <12234510+solracsf@users.noreply.github.com> | 2023-12-05 09:47:03 +0100 |
commit | fbc0f657112c58fa1f3b2c58b9b4606d27d129b5 (patch) | |
tree | 123cffca1484e04d3a79242aaed464d1b46dfced /lib | |
parent | 4e2e475bd3a811d5f74bce3656d16523a0d448d4 (diff) | |
download | nextcloud-server-fbc0f657112c58fa1f3b2c58b9b4606d27d129b5.tar.gz nextcloud-server-fbc0f657112c58fa1f3b2c58b9b4606d27d129b5.zip |
add more checks to ensure mounts aren't empty
Signed-off-by: Robin Appelman <robin@icewind.nl>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/Files/Config/MountProviderCollection.php | 5 | ||||
-rw-r--r-- | lib/private/Files/Mount/Manager.php | 11 |
2 files changed, 15 insertions, 1 deletions
diff --git a/lib/private/Files/Config/MountProviderCollection.php b/lib/private/Files/Config/MountProviderCollection.php index ae6481e45bb..d251199fd43 100644 --- a/lib/private/Files/Config/MountProviderCollection.php +++ b/lib/private/Files/Config/MountProviderCollection.php @@ -238,6 +238,11 @@ class MountProviderCollection implements IMountProviderCollection, Emitter { $mounts = array_reduce($mounts, function (array $mounts, array $providerMounts) { return array_merge($mounts, $providerMounts); }, []); + + if (count($mounts) === 0) { + throw new \Exception("No root mounts provided by any provider"); + } + return $mounts; } diff --git a/lib/private/Files/Mount/Manager.php b/lib/private/Files/Mount/Manager.php index e623211cc7a..94304ff4838 100644 --- a/lib/private/Files/Mount/Manager.php +++ b/lib/private/Files/Mount/Manager.php @@ -101,6 +101,15 @@ class Manager implements IMountManager { return $this->pathCache[$path]; } + + + if (count($this->mounts) === 0) { + $this->setupManager->setupRoot(); + if (count($this->mounts) === 0) { + throw new \Exception("No mounts even after explicitly setting up the root mounts"); + } + } + $current = $path; while (true) { $mountPoint = $current . '/'; @@ -117,7 +126,7 @@ class Manager implements IMountManager { } } - throw new NotFoundException("No mount for path " . $path . " existing mounts: " . implode(",", array_keys($this->mounts))); + throw new NotFoundException("No mount for path " . $path . " existing mounts (" . count($this->mounts) ."): " . implode(",", array_keys($this->mounts))); } /** |