diff options
author | Xinchen Hui <laruence@php.net> | 2012-03-11 15:28:31 +0000 |
---|---|---|
committer | Xinchen Hui <laruence@php.net> | 2012-03-11 15:28:31 +0000 |
commit | 7536bf963df9422d9604fa92d2243d00c9f26f60 (patch) | |
tree | 25a92d3556d8bf5a96fd39b2d3d3b4b5e6d6b6b6 /Zend/zend_execute_API.c | |
parent | 7ace6dd108d3487a822972802f74145c49e298f3 (diff) | |
download | php-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.c | 2 |
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); |