diff options
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | ext/date/tests/bug62852.phpt | 33 |
2 files changed, 33 insertions, 4 deletions
@@ -37,10 +37,6 @@ PHP NEWS - CURL: . Fixed bug #62839 (curl_copy_handle segfault with CURLOPT_FILE). (Pierrick) -- DateTime: - . Fixed bug #62852 (Unserialize invalid DateTime causes crash). - (reeze.xia@gmail.com) - - Intl: . Fix null pointer dereferences in some classes of ext/intl. (Gustavo) diff --git a/ext/date/tests/bug62852.phpt b/ext/date/tests/bug62852.phpt new file mode 100644 index 0000000000..2c23138035 --- /dev/null +++ b/ext/date/tests/bug62852.phpt @@ -0,0 +1,33 @@ +--TEST-- +Bug #62852 (Unserialize invalid DateTime causes crash) +--INI-- +date.timezone=GMT +--XFAIL-- +bug is not fixed yet +--FILE-- +<?php +$s1 = 'O:8:"DateTime":3:{s:4:"date";s:20:"10007-06-07 03:51:49";s:13:"timezone_type";i:3;s:8:"timezone";s:3:"UTC";}'; +$s2 = 'O:3:"Foo":3:{s:4:"date";s:20:"10007-06-07 03:51:49";s:13:"timezone_type";i:3;s:8:"timezone";s:3:"UTC";}'; + +global $foo; + +class Foo extends DateTime { + function __wakeup() { + global $foo; + $foo = $this; + parent::__wakeup(); + } +} + +// Old test case +try { + unserialize( $s1 ); +} catch ( Exception $e ) {} + +// My test case +try { + unserialize( $s2 ); +} catch ( Exception $e ) {} +var_dump( $foo ); +?> +--EXPECTF-- |