derick Wed Apr 16 17:24:00 2008 UTC
Modified files:
/php-src/ext/date php_date.c
/php-src/ext/date/tests bug44742.phpt
Log:
- MF52: Fixed bug #44703 (htmlspecialchars() does not detect bad character set
argument).
#- WIll merge to 5.3 later, that branch has some more modifications.
http://cvs.php.net/viewvc.cgi/php-src/ext/date/php_date.c?r1=1.176&r2=1.177&diff_format=u
Index: php-src/ext/date/php_date.c
diff -u php-src/ext/date/php_date.c:1.176 php-src/ext/date/php_date.c:1.177
--- php-src/ext/date/php_date.c:1.176 Mon Mar 31 09:10:54 2008
+++ php-src/ext/date/php_date.c Wed Apr 16 17:24:00 2008
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_date.c,v 1.176 2008/03/31 09:10:54 derick Exp $ */
+/* $Id: php_date.c,v 1.177 2008/04/16 17:24:00 derick Exp $ */
#include "php.h"
#include "php_streams.h"
@@ -2750,9 +2750,19 @@
dateobj = (php_date_obj *) zend_object_store_get_object(dateobject
TSRMLS_CC);
DATE_CHECK_INITIALIZED(dateobj->time, DateTime);
- offset = timelib_get_time_zone_info(dateobj->time->sse, tzobj->tzi.tz);
- RETVAL_LONG(offset->offset);
- timelib_time_offset_dtor(offset);
+ switch (tzobj->type) {
+ case TIMELIB_ZONETYPE_ID:
+ offset = timelib_get_time_zone_info(dateobj->time->sse,
tzobj->tzi.tz);
+ RETVAL_LONG(offset->offset);
+ timelib_time_offset_dtor(offset);
+ break;
+ case TIMELIB_ZONETYPE_OFFSET:
+ RETURN_LONG(tzobj->tzi.utc_offset * -60);
+ break;
+ case TIMELIB_ZONETYPE_ABBR:
+ RETURN_LONG((tzobj->tzi.z.utc_offset -
(tzobj->tzi.z.dst*60)) * -60);
+ break;
+ }
}
/* }}} */
http://cvs.php.net/viewvc.cgi/php-src/ext/date/tests/bug44742.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/date/tests/bug44742.phpt
diff -u /dev/null php-src/ext/date/tests/bug44742.phpt:1.2
--- /dev/null Wed Apr 16 17:24:00 2008
+++ php-src/ext/date/tests/bug44742.phpt Wed Apr 16 17:24:00 2008
@@ -0,0 +1,35 @@
+--TEST--
+Bug #44742 (timezone_offset_get() causes segmentation faults)
+--FILE--
+<?php
+$dates = array(
+ "2008-04-11 00:00:00+0000",
+ "2008-04-11 00:00:00+0200",
+ "2008-04-11 00:00:00+0330",
+ "2008-04-11 00:00:00-0500",
+ "2008-04-11 00:00:00-1130",
+ "2008-04-11 00:00:00 CEST",
+ "2008-04-11 00:00:00 CET",
+ "2008-04-11 00:00:00 UTC",
+ "2008-04-11 00:00:00 America/New_York",
+ "2008-04-11 00:00:00 Europe/Oslo",
+ "2008-04-11 00:00:00 Asia/Singapore",
+);
+foreach ($dates as $date)
+{
+ $date = date_create($date);
+ var_dump(timezone_offset_get(date_timezone_get($date), $date));
+}
+?>
+--EXPECT--
+int(0)
+int(7200)
+int(12600)
+int(-18000)
+int(-41400)
+int(7200)
+int(3600)
+int(0)
+int(-14400)
+int(7200)
+int(28800)
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php