From f06aa8058b7e32ba32d4551074b6e0b8a300f751 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli <thomas@roundcube.net> Date: Mon, 21 Oct 2013 15:02:40 -0400 Subject: [PATCH] Bump version after security fix --- program/include/main.inc | 68 ++++++++++++++++++--------------- 1 files changed, 37 insertions(+), 31 deletions(-) diff --git a/program/include/main.inc b/program/include/main.inc index ecb46ab..bf56cb2 100644 --- a/program/include/main.inc +++ b/program/include/main.inc @@ -735,38 +735,36 @@ { global $RCMAIL, $CONFIG; - if (is_a($date, 'DateTime')) { - $ts = $date->format('U'); - $tzs = $date->getTimezone(); + if (is_object($date) && is_a($date, 'DateTime')) { + $timestamp = $date->format('U'); } else { - $tzs = 'GMT'; - if (!empty($date)) - $ts = rcube_strtotime($date); + $timestamp = rcube_strtotime($date); - if (empty($ts)) + if (empty($timestamp)) return ''; try { - $date = new DateTime("@".$ts); + $date = new DateTime("@".$timestamp); } catch (Exception $e) { return ''; } } - try { - // convert to the right timezone - $stz = date_default_timezone_get(); - $tz = new DateTimeZone($convert ? $RCMAIL->config->get('timezone') : $tzs); - $date->setTimezone($tz); - date_default_timezone_set($tz->getName()); + if ($convert) { + try { + // convert to the right timezone + $stz = date_default_timezone_get(); + $tz = new DateTimeZone($RCMAIL->config->get('timezone')); + $date->setTimezone($tz); + date_default_timezone_set($tz->getName()); - $timestamp = $date->format('U'); - } - catch (Exception $e) { - $timestamp = $ts; + $timestamp = $date->format('U'); + } + catch (Exception $e) { + } } // define date format depending on current time @@ -789,14 +787,18 @@ // strftime() format if (preg_match('/%[a-z]+/i', $format)) { $format = strftime($format, $timestamp); - date_default_timezone_set($stz); + + if ($convert && $stz) { + date_default_timezone_set($stz); + } + return $today ? (rcube_label('today') . ' ' . $format) : $format; } // parse format string manually in order to provide localized weekday and month names // an alternative would be to convert the date() format string to fit with strftime() $out = ''; - for($i=0; $i<strlen($format); $i++) { + for ($i=0; $i<strlen($format); $i++) { if ($format[$i]=='\\') // skip escape chars continue; @@ -805,20 +807,20 @@ $out .= $format[$i]; // weekday (short) else if ($format[$i]=='D') - $out .= rcube_label(strtolower($date->format('D'))); + $out .= rcube_label(strtolower(date('D', $timestamp))); // weekday long else if ($format[$i]=='l') - $out .= rcube_label(strtolower($date->format('l'))); + $out .= rcube_label(strtolower(date('l', $timestamp))); // month name (short) else if ($format[$i]=='M') - $out .= rcube_label(strtolower($date->format('M'))); + $out .= rcube_label(strtolower(date('M', $timestamp))); // month name (long) else if ($format[$i]=='F') - $out .= rcube_label('long'.strtolower($date->format('M'))); + $out .= rcube_label('long'.strtolower(date('M', $timestamp))); else if ($format[$i]=='x') $out .= strftime('%x %X', $timestamp); else - $out .= $date->format($format[$i]); + $out .= date($format[$i], $timestamp); } if ($today) { @@ -832,7 +834,10 @@ } } - date_default_timezone_set($stz); + if ($convert && $stz) { + date_default_timezone_set($stz); + } + return $out; } @@ -881,13 +886,14 @@ $attrib['folder_name'] = '*'; // get mailbox list - $mbox_name = $RCMAIL->storage->get_folder(); + $storage = $RCMAIL->get_storage(); + $mbox_name = $storage->get_folder(); // build the folders tree if (empty($a_mailboxes)) { // get mailbox list - $a_folders = $RCMAIL->storage->list_folders_subscribed('', $attrib['folder_name'], $attrib['folder_filter']); - $delimiter = $RCMAIL->storage->get_hierarchy_delimiter(); + $a_folders = $storage->list_folders_subscribed('', $attrib['folder_name'], $attrib['folder_filter']); + $delimiter = $storage->get_hierarchy_delimiter(); $a_mailboxes = array(); foreach ($a_folders as $folder) @@ -1372,7 +1378,7 @@ 'skin_path' => $RCMAIL->output->get_skin_path(), 'spellcheck' => intval($RCMAIL->config->get('enable_spellcheck')), 'spelldict' => intval($RCMAIL->config->get('spellcheck_dictionary')), - ))), 'foot'); + ))), 'docready'); } @@ -1611,7 +1617,7 @@ $mem_limit = parse_bytes(ini_get('memory_limit')); $memory = function_exists('memory_get_usage') ? memory_get_usage() : 16*1024*1024; // safe value: 16MB - return $mem_limit && $memory + $need > $mem_limit ? false : true; + return $mem_limit > 0 && $memory + $need > $mem_limit ? false : true; } -- Gitblit v1.9.1