From: Derick Rethans Date: Wed, 16 Apr 2008 17:24:00 +0000 (+0000) Subject: - MF52: Fixed bug #44703 (htmlspecialchars() does not detect bad character set X-Git-Tag: RELEASE_2_0_0b1~346 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=62a4aff5f8c4d5453289e58a75279535f9fe7ae3;p=php - MF52: Fixed bug #44703 (htmlspecialchars() does not detect bad character set argument). #- WIll merge to 5.3 later, that branch has some more modifications. --- diff --git a/ext/date/php_date.c b/ext/date/php_date.c index 0bd27f8dff..bffda005cb 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -2750,9 +2750,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)