summaryrefslogtreecommitdiff
path: root/program/lib/Roundcube
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2015-02-03 07:52:14 -0500
committerAleksander Machniak <alec@alec.pl>2015-02-03 07:52:14 -0500
commite17decc4c2b175e1b2e3cd79f7c8b4c39c1f70f1 (patch)
tree42b25f6c255668b662f8e5a06c7444ae3c592ea8 /program/lib/Roundcube
parente8fc8d303a30658abd70419917a1373131802e28 (diff)
Better handle log/temp directory misconfiguration
Diffstat (limited to 'program/lib/Roundcube')
-rw-r--r--program/lib/Roundcube/bootstrap.php11
-rw-r--r--program/lib/Roundcube/rcube_config.php10
2 files changed, 15 insertions, 6 deletions
diff --git a/program/lib/Roundcube/bootstrap.php b/program/lib/Roundcube/bootstrap.php
index af87beb24..cc2347406 100644
--- a/program/lib/Roundcube/bootstrap.php
+++ b/program/lib/Roundcube/bootstrap.php
@@ -490,8 +490,11 @@ function rcube_autoload($classname)
*/
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);
}
diff --git a/program/lib/Roundcube/rcube_config.php b/program/lib/Roundcube/rcube_config.php
index 3fae931d7..89e45449d 100644
--- a/program/lib/Roundcube/rcube_config.php
+++ b/program/lib/Roundcube/rcube_config.php
@@ -233,8 +233,14 @@ class rcube_config
$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) {