diff options
author | Christopher Jones <sixd@php.net> | 2013-09-02 05:40:40 -0700 |
---|---|---|
committer | Christopher Jones <sixd@php.net> | 2013-09-02 05:40:40 -0700 |
commit | 2452e7b68067b053f289aec46864b77c2a158a68 (patch) | |
tree | a4488a9722c96997a54a4d1956210439c4c5eb6f | |
parent | c8b0da6ef74100b476379ba40367c30564da6582 (diff) | |
parent | b2ee1b629e6b48b43fa6d17a040a2a0ee69caddc (diff) | |
download | php-git-2452e7b68067b053f289aec46864b77c2a158a68.tar.gz |
Merge branch 'PHP-5.5' of https://git.php.net/repository/php-src into PHP-5.5
* 'PHP-5.5' of https://git.php.net/repository/php-src:
Typo....
Add a XFAIL test for #64896
-rw-r--r-- | Zend/tests/bug64896.phpt | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/Zend/tests/bug64896.phpt b/Zend/tests/bug64896.phpt new file mode 100644 index 0000000000..3e955bbece --- /dev/null +++ b/Zend/tests/bug64896.phpt @@ -0,0 +1,47 @@ +--TEST-- +Bug #64896 (Segfault with gc_collect_cycles using unserialize on certain objects) +--XFAIL-- +We can not fix this bug without a significant (performace slow down) change to gc +--FILE-- +<?php +$bar = NULL; +class bad +{ + private $_private = array(); + + public function __construct() + { + $this->_private[] = 'php'; + } + + public function __destruct() + { + global $bar; + $bar = $this; + } +} + +$foo = new stdclass; +$foo->foo = $foo; +$foo->bad = new bad; + +gc_disable(); + +unserialize(serialize($foo)); +gc_collect_cycles(); +var_dump($bar); +/* will output: +object(bad)#4 (1) { + ["_private":"bad":private]=> + &UNKNOWN:0 +} +*/ +?> +--EXPECTF-- +bject(bad)#%d (1) { + ["_private":"bad":private]=> + array(1) { + [0]=> + string(3) "php" + } +} |