From 9c6e206bce57d84ffe13181033ec6c7be1779ad0 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Fri, 6 Mar 2020 16:29:17 +0100 Subject: [PATCH] Remove NO_ACCESS flag for zend_is_callable() We may add support for fake_scope if necessary. --- Zend/zend_API.c | 4 +--- Zend/zend_API.h | 1 - ext/filter/callback_filter.c | 2 +- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 50a1d434db..dd823d627c 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -2956,7 +2956,6 @@ static zend_always_inline int zend_is_callable_check_func(int check_flags, zval } } if (!(fcc->function_handler->common.fn_flags & ZEND_ACC_PUBLIC) && - !(check_flags & IS_CALLABLE_CHECK_NO_ACCESS) && (fcc->calling_scope && ((fcc->object && fcc->calling_scope->__call) || (!fcc->object && fcc->calling_scope->__callstatic)))) { @@ -3024,8 +3023,7 @@ get_function_via_handler: } } if (retval - && !(fcc->function_handler->common.fn_flags & ZEND_ACC_PUBLIC) - && !(check_flags & IS_CALLABLE_CHECK_NO_ACCESS)) { + && !(fcc->function_handler->common.fn_flags & ZEND_ACC_PUBLIC)) { scope = zend_get_executed_scope(); if (fcc->function_handler->common.scope != scope) { if ((fcc->function_handler->common.fn_flags & ZEND_ACC_PRIVATE) diff --git a/Zend/zend_API.h b/Zend/zend_API.h index 0e93159167..f64f346951 100644 --- a/Zend/zend_API.h +++ b/Zend/zend_API.h @@ -327,7 +327,6 @@ ZEND_API int zend_disable_class(char *class_name, size_t class_name_length); ZEND_API ZEND_COLD void zend_wrong_param_count(void); #define IS_CALLABLE_CHECK_SYNTAX_ONLY (1<<0) -#define IS_CALLABLE_CHECK_NO_ACCESS (1<<1) #define IS_CALLABLE_CHECK_SILENT (1<<3) ZEND_API void zend_release_fcall_info_cache(zend_fcall_info_cache *fcc); diff --git a/ext/filter/callback_filter.c b/ext/filter/callback_filter.c index d9ad4bdf24..d02a30b754 100644 --- a/ext/filter/callback_filter.c +++ b/ext/filter/callback_filter.c @@ -22,7 +22,7 @@ void php_filter_callback(PHP_INPUT_FILTER_PARAM_DECL) zval args[1]; int status; - if (!option_array || !zend_is_callable(option_array, IS_CALLABLE_CHECK_NO_ACCESS, NULL)) { + if (!option_array || !zend_is_callable(option_array, 0, NULL)) { php_error_docref(NULL, E_WARNING, "First argument is expected to be a valid callback"); zval_ptr_dtor(value); ZVAL_NULL(value); -- 2.50.1