summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_execute.h
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-09-03 17:10:34 +0200
committerNikita Popov <nikita.ppv@gmail.com>2020-09-03 17:12:40 +0200
commit46a49be6c866103ebcb95e03b2b96460bec16b7b (patch)
tree041cc0d12717549d9f7477cac6ba33e029b7f70d /Zend/zend_vm_execute.h
parent1848ccdae2b9fbdfbbe8de56f8eda8b8869c825e (diff)
downloadphp-git-46a49be6c866103ebcb95e03b2b96460bec16b7b.tar.gz
Fixed bug #80049
Type checking may convert to refcounted values, so force freeing of extra args.
Diffstat (limited to 'Zend/zend_vm_execute.h')
-rw-r--r--Zend/zend_vm_execute.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 9d7515e9d0..e5e5a9e1da 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -2375,6 +2375,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_RECV_VARIADIC_SPEC_UNUSED_HAND
ZEND_HASH_FILL_PACKED(Z_ARRVAL_P(params)) {
param = EX_VAR_NUM(EX(func)->op_array.last_var + EX(func)->op_array.T);
if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) != 0)) {
+ ZEND_ADD_CALL_FLAG(execute_data, ZEND_CALL_FREE_EXTRA_ARGS);
do {
zend_verify_arg_type(EX(func), arg_num, param, NULL, CACHE_ADDR(opline->op2.num));
if (Z_OPT_REFCOUNTED_P(param)) Z_ADDREF_P(param);