Merge branch 'PHP-8.4'

* PHP-8.4:
  Fix GH-16266: _ZendTestClass::test() segfaults on named parameter
This commit is contained in:
Christoph M. Becker 2024-10-21 19:46:34 +02:00
commit 50acf5eb15
No known key found for this signature in database
GPG key ID: D66C9593118BCCB6
2 changed files with 23 additions and 2 deletions

View file

@ -850,7 +850,7 @@ static zend_function *zend_test_class_method_get(zend_object **object, zend_stri
} }
memset(fptr, 0, sizeof(zend_internal_function)); memset(fptr, 0, sizeof(zend_internal_function));
fptr->type = ZEND_INTERNAL_FUNCTION; fptr->type = ZEND_INTERNAL_FUNCTION;
fptr->num_args = 1; fptr->num_args = 0;
fptr->scope = (*object)->ce; fptr->scope = (*object)->ce;
fptr->fn_flags = ZEND_ACC_CALL_VIA_HANDLER; fptr->fn_flags = ZEND_ACC_CALL_VIA_HANDLER;
fptr->function_name = zend_string_copy(name); fptr->function_name = zend_string_copy(name);
@ -874,7 +874,7 @@ static zend_function *zend_test_class_static_method_get(zend_class_entry *ce, ze
} }
memset(fptr, 0, sizeof(zend_internal_function)); memset(fptr, 0, sizeof(zend_internal_function));
fptr->type = ZEND_INTERNAL_FUNCTION; fptr->type = ZEND_INTERNAL_FUNCTION;
fptr->num_args = 1; fptr->num_args = 0;
fptr->scope = ce; fptr->scope = ce;
fptr->fn_flags = ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_STATIC; fptr->fn_flags = ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_STATIC;
fptr->function_name = zend_string_copy(name); fptr->function_name = zend_string_copy(name);

View file

@ -0,0 +1,21 @@
--TEST--
GH-16266 (_ZendTestClass::test() segfaults on named parameter)
--EXTENSIONS--
zend_test
--FILE--
<?php
try {
$o = new _ZendTestClass();
$o->test('a', 'b', c: 'c');
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
try {
_ZendTestClass::test('a', 'b', c: 'c');
} catch (Error $e) {
echo $e->getMessage(), "\n";
}
?>
--EXPECT--
Unknown named parameter $c
Unknown named parameter $c