summaryrefslogtreecommitdiff
path: root/Zend/zend_execute.c
diff options
context:
space:
mode:
authorBob Weinand <bobwei9@hotmail.com>2015-06-26 05:10:58 +0200
committerBob Weinand <bobwei9@hotmail.com>2015-06-26 05:10:58 +0200
commit1335ebd0681f821ac143fb65daf78807fc619b8b (patch)
treeb874510205fc9b49a0caf887d947fcbaa9cf72dd /Zend/zend_execute.c
parentbc0df38e887e362761737227dd3c7b9b252e946c (diff)
downloadphp-git-1335ebd0681f821ac143fb65daf78807fc619b8b.tar.gz
Fix Closure leak in aborted INIT_DYNAMIC_FCALL
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r--Zend/zend_execute.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 8fc40245c9..e80f42992d 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -2486,6 +2486,9 @@ static zend_always_inline void i_cleanup_unfinished_execution(zend_execute_data
}
OBJ_RELEASE(Z_OBJ(call->This));
}
+ if (call->func->common.fn_flags & ZEND_ACC_CLOSURE) {
+ zend_object_release(call->func->common.prototype);
+ }
if (call->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) {
zend_string_release(call->func->common.function_name);
zend_free_trampoline(call->func);