diff options
| author | Stanislav Malyshev <stas@php.net> | 2003-04-20 14:18:15 +0000 |
|---|---|---|
| committer | Stanislav Malyshev <stas@php.net> | 2003-04-20 14:18:15 +0000 |
| commit | faafbd6edd95e77197f4f9a3eaec9600518baa66 (patch) | |
| tree | 1aee1d6da3d0f2ab6b1b05d0d13eb9512d8f038c /Zend/zend_builtin_functions.c | |
| parent | ac33bc48f087536ba40c7808c920d2453c36d1c5 (diff) | |
| download | php-git-faafbd6edd95e77197f4f9a3eaec9600518baa66.tar.gz | |
Fix for bug #21094 (set_error_handler can not accept methods),
by Timm Friebe
Diffstat (limited to 'Zend/zend_builtin_functions.c')
| -rw-r--r-- | Zend/zend_builtin_functions.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c index bb26526e10..baeae401ef 100644 --- a/Zend/zend_builtin_functions.c +++ b/Zend/zend_builtin_functions.c @@ -968,12 +968,20 @@ ZEND_FUNCTION(set_error_handler) { zval **error_handler; zend_bool had_orig_error_handler=0; - + char *error_handler_name; + if (ZEND_NUM_ARGS()!=1 || zend_get_parameters_ex(1, &error_handler)==FAILURE) { ZEND_WRONG_PARAM_COUNT(); } - convert_to_string_ex(error_handler); + if (!zend_is_callable(*error_handler, 0, &error_handler_name)) { + zend_error(E_WARNING, "%s() expects the argument (%s) to be a valid callback", + get_active_function_name(TSRMLS_C), error_handler_name); + efree(error_handler_name); + return; + } + efree(error_handler_name); + if (EG(user_error_handler)) { had_orig_error_handler = 1; *return_value = *EG(user_error_handler); |
