summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorSimon L <szaimen@e.mail.de>2023-02-13 14:55:20 +0100
committerSimon L <szaimen@e.mail.de>2023-02-13 16:26:19 +0100
commit9b6e5c6674e1dd8bf332a76ea1572fec5876f532 (patch)
treec6f6f7fc51ac1236cde0dd785aa8c5e18d00fc77 /lib
parent936f6340693956d1f7bc8e6bfcf64126c83ef30f (diff)
downloadnextcloud-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.php6
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));