summaryrefslogtreecommitdiff
path: root/Zend/zend_execute_API.c
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2012-03-11 15:28:31 +0000
committerXinchen Hui <laruence@php.net>2012-03-11 15:28:31 +0000
commit7536bf963df9422d9604fa92d2243d00c9f26f60 (patch)
tree25a92d3556d8bf5a96fd39b2d3d3b4b5e6d6b6b6 /Zend/zend_execute_API.c
parent7ace6dd108d3487a822972802f74145c49e298f3 (diff)
downloadphp-git-7536bf963df9422d9604fa92d2243d00c9f26f60.tar.gz
Fixed bug #61273 (call_user_func_array with more than 16333 arguments leaks / crashes)
Diffstat (limited to 'Zend/zend_execute_API.c')
-rw-r--r--Zend/zend_execute_API.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index 9ca21ad98e..9295a3a307 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -877,7 +877,7 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
if (fci->no_separation &&
!ARG_MAY_BE_SENT_BY_REF(EX(function_state).function, i + 1)) {
- if(i) {
+ if (i || UNEXPECTED(UNEXPECTED(ZEND_VM_STACK_ELEMETS(EG(argument_stack)) == EG(argument_stack)->top))) {
/* hack to clean up the stack */
zend_vm_stack_push_nocheck((void *) (zend_uintptr_t)i TSRMLS_CC);
zend_vm_stack_clear_multiple(TSRMLS_C);