diff options
author | Simon L <szaimen@e.mail.de> | 2023-02-13 14:55:20 +0100 |
---|---|---|
committer | Simon L <szaimen@e.mail.de> | 2023-02-13 16:26:19 +0100 |
commit | 9b6e5c6674e1dd8bf332a76ea1572fec5876f532 (patch) | |
tree | c6f6f7fc51ac1236cde0dd785aa8c5e18d00fc77 /lib | |
parent | 936f6340693956d1f7bc8e6bfcf64126c83ef30f (diff) | |
download | nextcloud-server-9b6e5c6674e1dd8bf332a76ea1572fec5876f532.tar.gz nextcloud-server-9b6e5c6674e1dd8bf332a76ea1572fec5876f532.zip |
add a disk_free_space check before writing config
Signed-off-by: Simon L <szaimen@e.mail.de>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/Config.php | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/private/Config.php b/lib/private/Config.php index ba3b8c6fe4d..53033d3a830 100644 --- a/lib/private/Config.php +++ b/lib/private/Config.php @@ -285,6 +285,12 @@ 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 low (less than 100 KiB) + $df = disk_free_space($this->configDir); + if ($df !== false && (int)$df < 102400) { + 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)); |