diff options
author | Simon L <szaimen@e.mail.de> | 2023-02-15 18:25:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-15 18:25:37 +0100 |
commit | 228911cbcde8b10aa6befe85b3f24cae990bedb2 (patch) | |
tree | ab5c1abf36047059e576026b812e5f09c28c732b /lib | |
parent | a747be3544b09c85f3f843627a1d5fbfbd3c4f0b (diff) | |
parent | 3757b345bc47adaeb3b25f1fb1cb5f8fade1676d (diff) | |
download | nextcloud-server-228911cbcde8b10aa6befe85b3f24cae990bedb2.tar.gz nextcloud-server-228911cbcde8b10aa6befe85b3f24cae990bedb2.zip |
Merge pull request #36691 from nextcloud/fix/25175/fix-config-truncating
add a disk_free_space check before writing config
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/Config.php | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/private/Config.php b/lib/private/Config.php index ba3b8c6fe4d..7308a3769df 100644 --- a/lib/private/Config.php +++ b/lib/private/Config.php @@ -285,6 +285,13 @@ class Config { 'This can usually be fixed by giving the webserver write access to the config directory.'); } + // Never write file back if disk space should be too low + $df = disk_free_space($this->configDir); + $size = strlen($content) + 10240; + if ($df !== false && (int)$df < $size) { + throw new \Exception($this->configDir . " does not have enough space for writing the config file! Not writing it back!"); + } + // Try to acquire a file lock if (!flock($filePointer, LOCK_EX)) { throw new \Exception(sprintf('Could not acquire an exclusive lock on the config file %s', $this->configFilePath)); |