summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2015-03-02 22:50:51 +0800
committerXinchen Hui <laruence@php.net>2015-03-02 22:50:51 +0800
commita78998c48b062f119d9a0f1c941b85dc8733b429 (patch)
tree462cbe702b1517d8bed1e77d46e5951b92139eec
parent9a20323e1946dff57eae8cd054e0893aefe83092 (diff)
downloadphp-git-a78998c48b062f119d9a0f1c941b85dc8733b429.tar.gz
Add a XFAIL test, which I'd like to think more about a better fix
-rw-r--r--ext/standard/tests/serialize/unserialize_mem_leak.phpt18
1 files changed, 18 insertions, 0 deletions
diff --git a/ext/standard/tests/serialize/unserialize_mem_leak.phpt b/ext/standard/tests/serialize/unserialize_mem_leak.phpt
new file mode 100644
index 0000000000..d27ca2b422
--- /dev/null
+++ b/ext/standard/tests/serialize/unserialize_mem_leak.phpt
@@ -0,0 +1,18 @@
+--TEST--
+Memleaks if unserialize return a self-referenced array/object
+--XFAIL--
+To fix this, we need change zval_ptr_dtor_nogc to zval_ptr_dtor in free_args, but it will introduce slowdown. mark this XFAIL now. we may find better fix later.
+--INI--
+report_memleaks=1
+--FILE--
+<?php
+function foo() {
+ gc_collect_cycles();
+}
+
+$str = 'a:1:{i:0;r:1;}';
+foo(unserialize($str));
+echo "okey";
+?>
+--EXPECT--
+okey