Skip to content

Commit 713c71a

Browse files
committed
Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2: Fix GH-16266: _ZendTestClass::test() segfaults on named parameter
2 parents 920e3d6 + b73bcaa commit 713c71a

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
@@ -813,7 +813,7 @@ static zend_function *zend_test_class_method_get(zend_object **object, zend_stri
813813
}
814814
memset(fptr, 0, sizeof(zend_internal_function));
815815
fptr->type = ZEND_INTERNAL_FUNCTION;
816-
fptr->num_args = 1;
816+
fptr->num_args = 0;
817817
fptr->scope = (*object)->ce;
818818
fptr->fn_flags = ZEND_ACC_CALL_VIA_HANDLER;
819819
fptr->function_name = zend_string_copy(name);
@@ -836,7 +836,7 @@ static zend_function *zend_test_class_static_method_get(zend_class_entry *ce, ze
836836
}
837837
memset(fptr, 0, sizeof(zend_internal_function));
838838
fptr->type = ZEND_INTERNAL_FUNCTION;
839-
fptr->num_args = 1;
839+
fptr->num_args = 0;
840840
fptr->scope = ce;
841841
fptr->fn_flags = ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_STATIC;
842842
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)