|
|
|
@ -1,14 +1,14 @@ |
|
|
|
--TEST-- |
|
|
|
Bug #32647 (Using register_shutdown_function() with invalid callback can crash PHP) |
|
|
|
--INI-- |
|
|
|
error_reporting=2047 |
|
|
|
error_reporting=4095 |
|
|
|
display_errors=1 |
|
|
|
--FILE-- |
|
|
|
<?php |
|
|
|
|
|
|
|
function foo() |
|
|
|
{ |
|
|
|
echo "joo!\n"; |
|
|
|
echo "foo!\n"; |
|
|
|
} |
|
|
|
|
|
|
|
class bar |
|
|
|
@ -23,9 +23,9 @@ register_shutdown_function(array($obj,"some string")); // Invalid |
|
|
|
register_shutdown_function(array(0,"")); // Invalid |
|
|
|
register_shutdown_function(array('bar','foo')); // Invalid |
|
|
|
register_shutdown_function(array(0,"some string")); // Invalid |
|
|
|
register_shutdown_function('bar'); // Valid |
|
|
|
register_shutdown_function('bar'); // Invalid |
|
|
|
register_shutdown_function('foo'); // Valid |
|
|
|
register_shutdown_function(array('bar','barfoo')); // Valid |
|
|
|
register_shutdown_function(array('bar','barfoo')); // Invalid |
|
|
|
|
|
|
|
$obj = new bar; |
|
|
|
register_shutdown_function(array($obj,'foobar')); // Invalid |
|
|
|
@ -45,11 +45,13 @@ Warning: register_shutdown_function(): Invalid shutdown callback 'Array' passed |
|
|
|
|
|
|
|
Warning: register_shutdown_function(): Invalid shutdown callback 'Array' passed in %s on line %d |
|
|
|
|
|
|
|
Warning: (Registered shutdown functions) Unable to call bar::foo() - function does not exist in Unknown on line 0 |
|
|
|
Strict Standards: Non-static method bar::barfoo() cannot be called statically in %sbug32647.php on line %d |
|
|
|
|
|
|
|
Warning: (Registered shutdown functions) Unable to call bar() - function does not exist in Unknown on line 0 |
|
|
|
joo! |
|
|
|
bar! |
|
|
|
Warning: register_shutdown_function(): Invalid shutdown callback 'bar::foobar' passed in %sbug32647.php on line %d |
|
|
|
foo! |
|
|
|
|
|
|
|
Strict Standards: Non-static method bar::barfoo() cannot be called statically in Unknown on line 0 |
|
|
|
|
|
|
|
Warning: (Registered shutdown functions) Unable to call bar::foobar() - function does not exist in Unknown on line 0 |
|
|
|
Strict Standards: Non-static method bar::barfoo() cannot be called statically in Unknown on line 0 |
|
|
|
bar! |
|
|
|
bar! |