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