summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/tests/bug67938.phpt2
-rw-r--r--Zend/zend_execute.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/Zend/tests/bug67938.phpt b/Zend/tests/bug67938.phpt
index 6597c4895f..fc8a9ab517 100644
--- a/Zend/tests/bug67938.phpt
+++ b/Zend/tests/bug67938.phpt
@@ -20,8 +20,10 @@ class Test implements TestInterface {
$obj = new Test;
$obj->foo();
$obj->bar([]);
+$obj->bar([], 1);
?>
--EXPECT--
Test::foo
Test::bar
+Test::bar
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 7544742cd7..673840ace5 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -1042,7 +1042,8 @@ static zend_always_inline int zend_verify_variadic_arg_type(zend_function *zf, u
ZEND_ASSERT(zf->common.fn_flags & ZEND_ACC_VARIADIC);
cur_arg_info = &zf->common.arg_info[zf->common.num_args];
- if (UNEXPECTED(!zend_check_type(cur_arg_info->type, arg, cache_slot, zf->common.scope, 0, 0))) {
+ if (ZEND_TYPE_IS_SET(cur_arg_info->type)
+ && UNEXPECTED(!zend_check_type(cur_arg_info->type, arg, cache_slot, zf->common.scope, 0, 0))) {
zend_verify_arg_error(zf, cur_arg_info, arg_num, cache_slot, arg);
return 0;
}