From: Nikita Popov Date: Wed, 12 Feb 2020 11:01:22 +0000 (+0100) Subject: Reset required_num_args for disabled functions X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=907ae8d4c6b7c1c129448f2f77bfbd59c0684ece;p=php Reset required_num_args for disabled functions Otherwise we may get arginfo/zpp mismatch errors. --- diff --git a/Zend/tests/bug69315.phpt b/Zend/tests/bug69315.phpt index 296e3bb9c6..0eb5afb080 100644 --- a/Zend/tests/bug69315.phpt +++ b/Zend/tests/bug69315.phpt @@ -12,6 +12,9 @@ var_dump(defined("PHP_VERSION")); var_dump(constant("PHP_VERSION")); var_dump(call_user_func("strlen")); var_dump(is_string("xxx")); +var_dump(is_string()); + +?> --EXPECTF-- bool(false) bool(true) @@ -30,3 +33,6 @@ NULL Warning: is_string() has been disabled for security reasons in %sbug69315.php on line %d NULL + +Warning: is_string() has been disabled for security reasons in %s on line %d +NULL diff --git a/Zend/zend_API.c b/Zend/zend_API.c index f826af856d..a3e452bf7d 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -2650,6 +2650,7 @@ ZEND_API int zend_disable_function(char *function_name, size_t function_name_len zend_free_internal_arg_info(func); func->fn_flags &= ~(ZEND_ACC_VARIADIC | ZEND_ACC_HAS_TYPE_HINTS | ZEND_ACC_HAS_RETURN_TYPE); func->num_args = 0; + func->required_num_args = 0; func->arg_info = NULL; func->handler = ZEND_FN(display_disabled_function); return SUCCESS;