diff options
-rw-r--r-- | lib/private/config.php | 2 | ||||
-rw-r--r-- | lib/private/log/owncloud.php | 23 |
2 files changed, 13 insertions, 12 deletions
diff --git a/lib/private/config.php b/lib/private/config.php index 30baa3fe0e6..368dafd0460 100644 --- a/lib/private/config.php +++ b/lib/private/config.php @@ -184,7 +184,7 @@ class Config { // Include file and merge config foreach ($configFiles as $file) { - $filePointer = @fopen($file, 'r'); + $filePointer = file_exists($file) ? fopen($file, 'r') : false; if($file === $this->configFilePath && $filePointer === false && @!file_exists($this->configFilePath)) { diff --git a/lib/private/log/owncloud.php b/lib/private/log/owncloud.php index f9ce671aa93..dabf95d7616 100644 --- a/lib/private/log/owncloud.php +++ b/lib/private/log/owncloud.php @@ -43,17 +43,18 @@ class OC_Log_Owncloud { $defaultLogFile = $systemConfig->getValue("datadirectory", OC::$SERVERROOT.'/data').'/owncloud.log'; self::$logFile = $systemConfig->getValue("logfile", $defaultLogFile); - /* - * Fall back to default log file if specified logfile does not exist - * and can not be created. Error suppression is required in order to - * not end up in the error handler which will try to log the error. - * A better solution (compared to error suppression) would be checking - * !is_writable(dirname(self::$logFile)) before touch(), but - * is_writable() on directories used to be pretty unreliable on Windows - * for at least some time. - */ - if (!file_exists(self::$logFile) && !@touch(self::$logFile)) { - self::$logFile = $defaultLogFile; + /** + * Fall back to default log file if specified logfile does not exist + * and can not be created. + */ + if (!file_exists(self::$logFile)) { + if(!is_writable(dirname(self::$logFile))) { + self::$logFile = $defaultLogFile; + } else { + if(!touch(self::$logFile)) { + self::$logFile = $defaultLogFile; + } + } } } |