mirror of
https://github.com/php/php-src.git
synced 2026-04-27 01:48:26 +02:00
Fixed bug #51393 (DateTime::createFromFormat() fails if format string contains timezone).
This commit is contained in:
@@ -9,6 +9,8 @@ PHP NEWS
|
||||
- Fixed a NULL pointer dereference when processing invalid XML-RPC
|
||||
requests (Fixes CVE-2010-0397, bug #51288). (Raphael Geissert)
|
||||
|
||||
- Fixed bug #51393 (DateTime::createFromFormat() fails if format string contains
|
||||
timezone). (Adam)
|
||||
- Fixed bug #51338 (URL-Rewriter is still enabled if use_only_cookies is
|
||||
on). (Ilia, j dot jeising at gmail dot com)
|
||||
- Fixed bug #51269 (zlib.output_compression Overwrites Vary Header). (Adam)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Generated by re2c 0.13.5 on Sun Mar 7 18:37:37 2010 */
|
||||
/* Generated by re2c 0.13.5 on Fri Mar 26 12:00:44 2010 */
|
||||
#line 1 "ext/date/lib/parse_date.re"
|
||||
/*
|
||||
+----------------------------------------------------------------------+
|
||||
@@ -526,7 +526,7 @@ static long timelib_parse_tz_cor(char **ptr)
|
||||
char *begin = *ptr, *end;
|
||||
long tmp;
|
||||
|
||||
while (**ptr != '\0') {
|
||||
while (isdigit(**ptr) || **ptr == ':') {
|
||||
++*ptr;
|
||||
}
|
||||
end = *ptr;
|
||||
|
||||
@@ -524,7 +524,7 @@ static long timelib_parse_tz_cor(char **ptr)
|
||||
char *begin = *ptr, *end;
|
||||
long tmp;
|
||||
|
||||
while (**ptr != '\0') {
|
||||
while (isdigit(**ptr) || **ptr == ':') {
|
||||
++*ptr;
|
||||
}
|
||||
end = *ptr;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Generated by re2c 0.13.5 on Sun Mar 7 14:12:01 2010 */
|
||||
/* Generated by re2c 0.13.5 on Fri Mar 26 12:12:03 2010 */
|
||||
#line 1 "ext/date/lib/parse_iso_intervals.re"
|
||||
/*
|
||||
+----------------------------------------------------------------------+
|
||||
@@ -183,7 +183,7 @@ static long timelib_parse_tz_cor(char **ptr)
|
||||
char *begin = *ptr, *end;
|
||||
long tmp;
|
||||
|
||||
while (**ptr != '\0') {
|
||||
while (isdigit(**ptr) || **ptr == ':') {
|
||||
++*ptr;
|
||||
}
|
||||
end = *ptr;
|
||||
|
||||
@@ -181,7 +181,7 @@ static long timelib_parse_tz_cor(char **ptr)
|
||||
char *begin = *ptr, *end;
|
||||
long tmp;
|
||||
|
||||
while (**ptr != '\0') {
|
||||
while (isdigit(**ptr) || **ptr == ':') {
|
||||
++*ptr;
|
||||
}
|
||||
end = *ptr;
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
--TEST--
|
||||
Bug #51393 (DateTime::createFromFormat() fails if format string contains timezone)
|
||||
--FILE--
|
||||
<?php
|
||||
$dt = DateTime::createFromFormat('O', '+0800');
|
||||
var_dump($dt->getOffset());
|
||||
|
||||
$dt = DateTime::createFromFormat('P', '+08:00');
|
||||
var_dump($dt->getOffset());
|
||||
|
||||
$dt = DateTime::createFromFormat('O', '-0800');
|
||||
var_dump($dt->getOffset());
|
||||
|
||||
$dt = DateTime::createFromFormat('P', '-08:00');
|
||||
var_dump($dt->getOffset());
|
||||
|
||||
$dt = DateTime::createFromFormat('[O]', '[+0800]');
|
||||
var_dump($dt->getOffset());
|
||||
|
||||
$dt = DateTime::createFromFormat('[P]', '[+08:00]');
|
||||
var_dump($dt->getOffset());
|
||||
|
||||
$dt = DateTime::createFromFormat('[O]', '[-0800]');
|
||||
var_dump($dt->getOffset());
|
||||
|
||||
$dt = DateTime::createFromFormat('[P]', '[-08:00]');
|
||||
var_dump($dt->getOffset());
|
||||
|
||||
$dt = DateTime::createFromFormat('O', 'GMT+0800');
|
||||
var_dump($dt->getOffset());
|
||||
|
||||
$dt = DateTime::createFromFormat('P', 'GMT+08:00');
|
||||
var_dump($dt->getOffset());
|
||||
|
||||
$dt = DateTime::createFromFormat('O', 'GMT-0800');
|
||||
var_dump($dt->getOffset());
|
||||
|
||||
$dt = DateTime::createFromFormat('P', 'GMT-08:00');
|
||||
var_dump($dt->getOffset());
|
||||
|
||||
$dt = DateTime::createFromFormat('[O]', '[GMT+0800]');
|
||||
var_dump($dt->getOffset());
|
||||
|
||||
$dt = DateTime::createFromFormat('[P]', '[GMT+08:00]');
|
||||
var_dump($dt->getOffset());
|
||||
|
||||
$dt = DateTime::createFromFormat('[O]', '[GMT-0800]');
|
||||
var_dump($dt->getOffset());
|
||||
|
||||
$dt = DateTime::createFromFormat('[P]', '[GMT-08:00]');
|
||||
var_dump($dt->getOffset());
|
||||
|
||||
$dt = DateTime::createFromFormat('O', 'invalid');
|
||||
var_dump($dt);
|
||||
?>
|
||||
--EXPECT--
|
||||
int(28800)
|
||||
int(28800)
|
||||
int(-28800)
|
||||
int(-28800)
|
||||
int(28800)
|
||||
int(28800)
|
||||
int(-28800)
|
||||
int(-28800)
|
||||
int(28800)
|
||||
int(28800)
|
||||
int(-28800)
|
||||
int(-28800)
|
||||
int(28800)
|
||||
int(28800)
|
||||
int(-28800)
|
||||
int(-28800)
|
||||
bool(false)
|
||||
Reference in New Issue
Block a user