5 changed files with 69 additions and 31 deletions
-
3NEWS
-
21ext/date/php_date.c
-
26ext/date/tests/bug62852.phpt
-
25ext/date/tests/bug62852_var2.phpt
-
25ext/date/tests/bug62852_var3.phpt
@ -1,36 +1,14 @@ |
|||
--TEST-- |
|||
Bug #62852 (Unserialize invalid DateTime causes crash) |
|||
Bug #62852 (Unserialize invalid DateTime causes crash), variation 1 |
|||
--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 ); |
|||
|
|||
echo "okey"; |
|||
?> |
|||
--EXPECTF-- |
|||
okey |
|||
Fatal error: Invalid serialization data for DateTime object in %sbug62852.php on line %d |
|||
@ -0,0 +1,25 @@ |
|||
--TEST-- |
|||
Bug #62852 (Unserialize invalid DateTime causes crash), variation 2 |
|||
--INI-- |
|||
date.timezone=GMT |
|||
--FILE-- |
|||
<?php |
|||
$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(); |
|||
} |
|||
} |
|||
|
|||
try { |
|||
unserialize( $s2 ); |
|||
} catch ( Exception $e ) {} |
|||
var_dump( $foo ); |
|||
|
|||
--EXPECTF-- |
|||
Fatal error: Invalid serialization data for DateTime object in %sbug62852_var2.php on line %d |
|||
@ -0,0 +1,25 @@ |
|||
--TEST-- |
|||
Bug #62852 (Unserialize invalid DateTime causes crash), variation 3 |
|||
--INI-- |
|||
date.timezone=GMT |
|||
--FILE-- |
|||
<?php |
|||
$s2 = 'O:3:"Foo":3:{s:4:"date";s:19:"0000-00-00 00:00:00";s:13:"timezone_type";i:0;s:8:"timezone";s:3:"UTC";}'; |
|||
|
|||
global $foo; |
|||
|
|||
class Foo extends DateTime { |
|||
function __wakeup() { |
|||
global $foo; |
|||
$foo = $this; |
|||
parent::__wakeup(); |
|||
} |
|||
} |
|||
|
|||
try { |
|||
unserialize( $s2 ); |
|||
} catch ( Exception $e ) {} |
|||
var_dump( $foo ); |
|||
|
|||
--EXPECTF-- |
|||
Fatal error: Invalid serialization data for DateTime object in %sbug62852_var3.php on line %d |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue