summaryrefslogtreecommitdiff
path: root/Zend/tests/unexpected_ref_bug.phpt
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2009-08-18 20:51:49 +0000
committerStanislav Malyshev <stas@php.net>2009-08-18 20:51:49 +0000
commitd6ba6c69fb3054ed3eefb6c4c6f8ad1bfb728037 (patch)
tree322c8344f65013c732a7ce250074a1fa48722119 /Zend/tests/unexpected_ref_bug.phpt
parent827469c94e9d3ec554dabcb79f478e06b31f6a14 (diff)
downloadphp-git-d6ba6c69fb3054ed3eefb6c4c6f8ad1bfb728037.tar.gz
fix crash when unexpectedly passed by-ref parameter is modified
Diffstat (limited to 'Zend/tests/unexpected_ref_bug.phpt')
-rwxr-xr-xZend/tests/unexpected_ref_bug.phpt18
1 files changed, 18 insertions, 0 deletions
diff --git a/Zend/tests/unexpected_ref_bug.phpt b/Zend/tests/unexpected_ref_bug.phpt
new file mode 100755
index 0000000000..61fe1aa5b1
--- /dev/null
+++ b/Zend/tests/unexpected_ref_bug.phpt
@@ -0,0 +1,18 @@
+--TEST--
+Crash when function parameter modified via unexpected reference
+--FILE--
+<?php
+function my_errorhandler($errno,$errormsg) {
+ global $my_var;
+ $my_var = 0;
+ return true;
+}
+set_error_handler("my_errorhandler");
+$my_var = str_repeat("A",64);
+$data = call_user_func_array("explode",array(new StdClass(), &$my_var));
+$my_var=array(1,2,3);
+$data = call_user_func_array("implode",array(&$my_var, new StdClass()));
+echo "Done.\n";
+?>
+--EXPECTF--
+Done.