Aleksander Machniak
2015-02-03 e17decc4c2b175e1b2e3cd79f7c8b4c39c1f70f1
Better handle log/temp directory misconfiguration
2 files modified
21 ■■■■ changed files
program/lib/Roundcube/bootstrap.php 11 ●●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_config.php 10 ●●●● patch | view | raw | blame | history
program/lib/Roundcube/bootstrap.php
@@ -490,8 +490,11 @@
 */
function rcube_pear_error($err)
{
    error_log(sprintf("%s (%s): %s",
        $err->getMessage(),
        $err->getCode(),
        $err->getUserinfo()), 0);
    $msg = sprintf("ERROR: %s (%s)", $err->getMessage(), $err->getCode());
    if ($info = $err->getUserinfo()) {
        $msg .= ': ' . $info;
    }
    error_log($msg, 0);
}
program/lib/Roundcube/rcube_config.php
@@ -233,8 +233,14 @@
            $this->prop['skin'] = self::DEFAULT_SKIN;
        // fix paths
        $this->prop['log_dir'] = $this->prop['log_dir'] ? realpath(unslashify($this->prop['log_dir'])) : RCUBE_INSTALL_PATH . 'logs';
        $this->prop['temp_dir'] = $this->prop['temp_dir'] ? realpath(unslashify($this->prop['temp_dir'])) : RCUBE_INSTALL_PATH . 'temp';
        foreach (array('log_dir' => 'logs', 'temp_dir' => 'temp') as $key => $dir) {
            foreach (array($this->prop[$key], '../' . $this->prop[$key], RCUBE_INSTALL_PATH . $dir) as $path) {
                if ($path && ($realpath = realpath(unslashify($path)))) {
                    $this->prop[$key] = $realpath;
                    break;
                }
            }
        }
        // fix default imap folders encoding
        foreach (array('drafts_mbox', 'junk_mbox', 'sent_mbox', 'trash_mbox') as $folder) {