diff -r 90a869b3f47a -r 6a82655eda42 components/php-5_3/php-sapi/patches/300_php_20804135.patch --- a/components/php-5_3/php-sapi/patches/300_php_20804135.patch Fri Oct 16 07:42:27 2015 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -CVE-2015-0273 -Community BUG: -https://bugs.php.net/bug.php?id=68942 -Community CODE: -http://git.php.net/?p=php-src.git;a=commit;h=71335e6ebabc1b12c057d8017fd811892ecdfd24 -Below is the community patch. - - -From 71335e6ebabc1b12c057d8017fd811892ecdfd24 Mon Sep 17 00:00:00 2001 -From: Stanislav Malyshev -Date: Tue, 17 Feb 2015 06:53:27 +0100 -Subject: [PATCH] Fix bug #68942 (Use after free vulnerability in unserialize() - with DateTimeZone) - ---- - ext/date/php_date.c | 21 ++++++++++----------- - ext/date/tests/bug68942.phpt | 9 +++++++++ - ext/date/tests/bug68942_2.phpt | 9 +++++++++ - 3 files changed, 28 insertions(+), 11 deletions(-) - create mode 100644 ext/date/tests/bug68942.phpt - create mode 100644 ext/date/tests/bug68942_2.phpt - -diff --git a/ext/date/php_date.c b/ext/date/php_date.c -index f8571b9..15ca08d 100644 ---- a/ext/date/php_date.c -+++ b/ext/date/php_date.c -@@ -2807,12 +2807,9 @@ static int php_date_initialize_from_hash(php_date_obj **dateobj, HashTable *myht - timelib_tzinfo *tzi; - php_timezone_obj *tzobj; - -- if (zend_hash_find(myht, "date", 5, (void**) &z_date) == SUCCESS) { -- convert_to_string(*z_date); -- 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) { -- convert_to_string(*z_timezone); -+ if (zend_hash_find(myht, "date", 5, (void**) &z_date) == SUCCESS && Z_TYPE_PP(z_date) == IS_STRING) { -+ if (zend_hash_find(myht, "timezone_type", 14, (void**) &z_timezone_type) == SUCCESS && Z_TYPE_PP(z_timezone_type) == IS_LONG) { -+ if (zend_hash_find(myht, "timezone", 9, (void**) &z_timezone) == SUCCESS && Z_TYPE_PP(z_timezone) == IS_STRING) { - - switch (Z_LVAL_PP(z_timezone_type)) { - case TIMELIB_ZONETYPE_OFFSET: -@@ -2827,7 +2824,6 @@ static int php_date_initialize_from_hash(php_date_obj **dateobj, HashTable *myht - - case TIMELIB_ZONETYPE_ID: { - int ret; -- convert_to_string(*z_timezone); - - tzi = php_date_parse_tzfile(Z_STRVAL_PP(z_timezone), DATE_TIMEZONEDB TSRMLS_CC); - -diff --git a/ext/date/tests/bug68942.phpt b/ext/date/tests/bug68942.phpt -new file mode 100644 -index 0000000..595cd9f ---- /dev/null -+++ b/ext/date/tests/bug68942.phpt -@@ -0,0 +1,9 @@ -+--TEST-- -+Bug #68942 (Use after free vulnerability in unserialize() with DateTimeZone). -+--FILE-- -+ -+--EXPECTF-- -+Fatal error: DateTimeZone::__wakeup(): Timezone initialization failed in %s/bug68942.php on line %d -diff --git a/ext/date/tests/bug68942_2.phpt b/ext/date/tests/bug68942_2.phpt -new file mode 100644 -index 0000000..5b02567 ---- /dev/null -+++ b/ext/date/tests/bug68942_2.phpt -@@ -0,0 +1,9 @@ -+--TEST-- -+Bug #68942 (Use after free vulnerability in unserialize() with DateTime). -+--FILE-- -+ -+--EXPECTF-- -+Fatal error: Invalid serialization data for DateTime object in %s/bug68942_2.php on line %d --- -2.1.4 -