Fix parsing date strings (e.g. from a Date: mail header) with comments (#6216)

pull/6465/head
Aleksander Machniak 6 years ago
parent 8922e3e076
commit 60902de521

@ -1,6 +1,8 @@
CHANGELOG Roundcube Webmail
===========================
- Fix parsing date strings (e.g. from a Date: mail header) with comments (#6216)
RELEASE 1.3.5
-------------
- Managesieve: Fix bug where text: syntax was forced for strings longer than 1024 characters (#6143)

@ -795,11 +795,13 @@ class rcube_utils
// Clean malformed data
$date = preg_replace(
array(
'/\(.*\)/', // remove RFC comments
'/GMT\s*([+-][0-9]+)/', // support non-standard "GMTXXXX" literal
'/[^a-z0-9\x20\x09:+-\/]/i', // remove any invalid characters
'/[^a-z0-9\x20\x09:\/\.+-]/i', // remove any invalid characters
'/\s*(Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s*/i', // remove weekday names
),
array(
'',
'\\1',
'',
'',

@ -373,6 +373,15 @@ class Framework_Utils extends PHPUnit_Framework_TestCase
$result = rcube_utils::anytodatetime($datetime);
$this->assertSame($ts, $result ? $result->format('Y-m-d H:i:s') : false, "Error parsing date: $datetime");
}
$test = array(
'Sun, 4 Mar 2018 03:32:08 +0300 (MSK)' => '2018-03-04 03:32:08 +0300',
);
foreach ($test as $datetime => $ts) {
$result = rcube_utils::anytodatetime($datetime);
$this->assertSame($ts, $result ? $result->format('Y-m-d H:i:s O') : false, "Error parsing date: $datetime");
}
}
/**

Loading…
Cancel
Save