From: Stanislav Malyshev Date: Sun, 20 Apr 2003 14:18:15 +0000 (+0000) Subject: Fix for bug #21094 (set_error_handler can not accept methods), X-Git-Tag: SPL_ALPHA~133 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=faafbd6edd95e77197f4f9a3eaec9600518baa66;p=php Fix for bug #21094 (set_error_handler can not accept methods), by Timm Friebe --- 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);