diff options
author | Stanislav Malyshev <stas@php.net> | 2009-08-18 20:51:49 +0000 |
---|---|---|
committer | Stanislav Malyshev <stas@php.net> | 2009-08-18 20:51:49 +0000 |
commit | d6ba6c69fb3054ed3eefb6c4c6f8ad1bfb728037 (patch) | |
tree | 322c8344f65013c732a7ce250074a1fa48722119 /Zend/tests/unexpected_ref_bug.phpt | |
parent | 827469c94e9d3ec554dabcb79f478e06b31f6a14 (diff) | |
download | php-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-x | Zend/tests/unexpected_ref_bug.phpt | 18 |
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. |