From: Xinchen Hui Date: Sat, 15 Sep 2012 03:26:21 +0000 (+0800) Subject: Revert "Fixed bug #62852 (Unserialize invalid DateTime causes crash)" X-Git-Tag: php-5.3.19RC1~19^2~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e766f85405cd936a07a30a045f419199b6c02ed7;p=php Revert "Fixed bug #62852 (Unserialize invalid DateTime causes crash)" see: http://news.php.net/php.bugs/173451 This reverts commit 46a3f257724df7b85cc8c3e6374c36ed9ee783b4. --- diff --git a/ext/date/php_date.c b/ext/date/php_date.c index d9e6a289b4..e8a457052e 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -2544,9 +2544,6 @@ static int php_date_initialize_from_hash(zval **return_value, php_date_obj **dat if (zend_hash_find(myht, "timezone_type", 14, (void**) &z_timezone_type) == SUCCESS) { convert_to_long(*z_timezone_type); if (zend_hash_find(myht, "timezone", 9, (void**) &z_timezone) == SUCCESS) { - zend_error_handling error_handling; - - zend_replace_error_handling(EH_THROW, NULL, &error_handling TSRMLS_CC); convert_to_string(*z_timezone); switch (Z_LVAL_PP(z_timezone_type)) { @@ -2554,9 +2551,9 @@ static int php_date_initialize_from_hash(zval **return_value, php_date_obj **dat case TIMELIB_ZONETYPE_ABBR: { char *tmp = emalloc(Z_STRLEN_PP(z_date) + Z_STRLEN_PP(z_timezone) + 2); snprintf(tmp, Z_STRLEN_PP(z_date) + Z_STRLEN_PP(z_timezone) + 2, "%s %s", Z_STRVAL_PP(z_date), Z_STRVAL_PP(z_timezone)); - php_date_initialize(*dateobj, tmp, Z_STRLEN_PP(z_date) + Z_STRLEN_PP(z_timezone) + 1, NULL, NULL, 1 TSRMLS_CC); + php_date_initialize(*dateobj, tmp, Z_STRLEN_PP(z_date) + Z_STRLEN_PP(z_timezone) + 1, NULL, NULL, 0 TSRMLS_CC); efree(tmp); - break; + return 1; } case TIMELIB_ZONETYPE_ID: @@ -2570,15 +2567,10 @@ static int php_date_initialize_from_hash(zval **return_value, php_date_obj **dat tzobj->tzi.tz = tzi; tzobj->initialized = 1; - php_date_initialize(*dateobj, Z_STRVAL_PP(z_date), Z_STRLEN_PP(z_date), NULL, tmp_obj, 1 TSRMLS_CC); + php_date_initialize(*dateobj, Z_STRVAL_PP(z_date), Z_STRLEN_PP(z_date), NULL, tmp_obj, 0 TSRMLS_CC); zval_ptr_dtor(&tmp_obj); - break; - default: - zend_restore_error_handling(&error_handling TSRMLS_CC); - return 0; + return 1; } - zend_restore_error_handling(&error_handling TSRMLS_CC); - return 1; } } } diff --git a/ext/date/tests/bug62852.phpt b/ext/date/tests/bug62852.phpt deleted file mode 100644 index 6426a80fb8..0000000000 --- a/ext/date/tests/bug62852.phpt +++ /dev/null @@ -1,15 +0,0 @@ ---TEST-- -Bug #62852 (Unserialize invalid DateTime causes crash) ---INI-- -date.timezone=GMT ---FILE-- -getMessage()); -} -?> ---EXPECTF-- -string(%d) "DateTime::__wakeup(): Failed to parse time string (%s) at position 12 (0): Double time specification"