aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorSimon L <szaimen@e.mail.de>2023-02-15 18:25:37 +0100
committerGitHub <noreply@github.com>2023-02-15 18:25:37 +0100
commit228911cbcde8b10aa6befe85b3f24cae990bedb2 (patch)
treeab5c1abf36047059e576026b812e5f09c28c732b /lib
parenta747be3544b09c85f3f843627a1d5fbfbd3c4f0b (diff)
parent3757b345bc47adaeb3b25f1fb1cb5f8fade1676d (diff)
downloadnextcloud-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.php7
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));