Skip to content

Commit 50acf5e

Browse files
committed
Merge branch 'PHP-8.4'
* PHP-8.4: Fix GH-16266: _ZendTestClass::test() segfaults on named parameter
2 parents 65f8857 + 241e3e0 commit 50acf5e

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

ext/zend_test/test.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -850,7 +850,7 @@ static zend_function *zend_test_class_method_get(zend_object **object, zend_stri
850850
}
851851
memset(fptr, 0, sizeof(zend_internal_function));
852852
fptr->type = ZEND_INTERNAL_FUNCTION;
853-
fptr->num_args = 1;
853+
fptr->num_args = 0;
854854
fptr->scope = (*object)->ce;
855855
fptr->fn_flags = ZEND_ACC_CALL_VIA_HANDLER;
856856
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
874874
}
875875
memset(fptr, 0, sizeof(zend_internal_function));
876876
fptr->type = ZEND_INTERNAL_FUNCTION;
877-
fptr->num_args = 1;
877+
fptr->num_args = 0;
878878
fptr->scope = ce;
879879
fptr->fn_flags = ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_STATIC;
880880
fptr->function_name = zend_string_copy(name);

ext/zend_test/tests/gh16266.phpt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
--TEST--
2+
GH-16266 (_ZendTestClass::test() segfaults on named parameter)
3+
--EXTENSIONS--
4+
zend_test
5+
--FILE--
6+
<?php
7+
try {
8+
$o = new _ZendTestClass();
9+
$o->test('a', 'b', c: 'c');
10+
} catch (Error $e) {
11+
echo $e->getMessage(), "\n";
12+
}
13+
try {
14+
_ZendTestClass::test('a', 'b', c: 'c');
15+
} catch (Error $e) {
16+
echo $e->getMessage(), "\n";
17+
}
18+
?>
19+
--EXPECT--
20+
Unknown named parameter $c
21+
Unknown named parameter $c

0 commit comments

Comments
 (0)