Commit dfba0e8737f for php.net
commit dfba0e8737f09e0d373c37a34edf7bb481d2e94b
Merge: 049f7e8dd06 2965b248c67
Author: Ilia Alshanetsky <ilia@ilia.ws>
Date: Fri Jul 31 13:34:33 2026 -0400
Merge branch 'PHP-8.5'
* PHP-8.5:
Check object_init_ex() in ReflectionMethod::createFromMethodName()
diff --cc ext/reflection/php_reflection.c
index 588e139810b,bcf75bfdf3d..25eb592e761
--- a/ext/reflection/php_reflection.c
+++ b/ext/reflection/php_reflection.c
@@@ -3228,14 -3392,16 +3228,17 @@@ static void instantiate_reflection_meth
if (is_constructor) {
object = ZEND_THIS;
} else {
- object_init_ex(return_value, execute_data->This.value.ce ? execute_data->This.value.ce : reflection_method_ptr);
+ zend_class_entry *called_ce = execute_data->This.value.ce ? execute_data->This.value.ce : reflection_method_ptr;
+ if (UNEXPECTED(object_init_ex(return_value, called_ce) != SUCCESS)) {
+ RETURN_THROWS();
+ }
object = return_value;
}
- intern = Z_REFLECTION_P(object);
+ reflection_object *intern = Z_REFLECTION_P(object);
- lcname = zend_str_tolower_dup(method_name, method_name_len);
+ char *lcname = zend_str_tolower_dup(method_name, method_name_len);
+ zend_function *mptr;
if (ce == zend_ce_closure && orig_obj && (method_name_len == sizeof(ZEND_INVOKE_FUNC_NAME)-1)
&& memcmp(lcname, ZEND_INVOKE_FUNC_NAME, sizeof(ZEND_INVOKE_FUNC_NAME)-1) == 0
&& (mptr = zend_get_closure_invoke_method(orig_obj)) != NULL)