From: Derick Rethans Date: Wed, 16 Apr 2008 17:21:46 +0000 (+0000) Subject: - Fixed bug #44703 (htmlspecialchars() does not detect bad character set X-Git-Tag: php-5.2.6~21 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8649483a6922c5d941315fa6034e5cd92609e522;p=php - Fixed bug #44703 (htmlspecialchars() does not detect bad character set argument). --- diff --git a/NEWS b/NEWS index 7d0d31e332..dadd9ddd68 100644 --- a/NEWS +++ b/NEWS @@ -1,8 +1,9 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? Apr 2008, PHP 5.2.6 -- Fixed bug #44703 (htmlspecialchars() does not detect bad character set argument) - (Andy Wharmby) +- Fixed bug #44703 (htmlspecialchars() does not detect bad character set + argument). (Andy Wharmby) +- Fixed bug #44742 (timezone_offset_get() causes segmentation faults). (Derick) 10 Apr 2008, PHP 5.2.6RC5 - Fixed incorrect heredoc handling when label is used within the block. @@ -29,6 +30,9 @@ PHP NEWS (Ilia) - Fixed bug #44557 (Crash in imap_setacl when supplied integer as username) (Thomas Jarosch) +- Fixed a bug in formatting timestamps when DST is active in the default + timezone (Derick) + 27 Mar 2008, PHP 5.2.6RC3 - Properly address incomplete multibyte chars inside escapeshellcmd() (Ilia, diff --git a/ext/date/php_date.c b/ext/date/php_date.c index f1a72e1f98..a319831859 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -2271,9 +2271,19 @@ PHP_FUNCTION(timezone_offset_get) 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; + } } /* }}} */ diff --git a/ext/date/tests/bug44742.phpt b/ext/date/tests/bug44742.phpt new file mode 100644 index 0000000000..e6df1efabd --- /dev/null +++ b/ext/date/tests/bug44742.phpt @@ -0,0 +1,35 @@ +--TEST-- +Bug #44742 (timezone_offset_get() causes segmentation faults) +--FILE-- + +--EXPECT-- +int(0) +int(7200) +int(12600) +int(-18000) +int(-41400) +int(7200) +int(3600) +int(0) +int(-14400) +int(7200) +int(28800)