From: Dmitry Stogov Date: Thu, 6 Mar 2014 09:32:43 +0000 (+0400) Subject: Internal functions may return (e.g. on wrong arguments) keeping the original return_v... X-Git-Tag: POST_PHPNG_MERGE~412^2~406^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8d2fb9d479bf13381d67e400e3b8c7aa28d7a480;p=php Internal functions may return (e.g. on wrong arguments) keeping the original return_value. So we have to initialize return_value as IS_NULL. --- diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index fb214dba10..7ddb526421 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -932,7 +932,7 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS EG(opline_ptr) = original_opline_ptr; } else if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION) { int call_via_handler = (EX(function_state).function->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) != 0; -//??? ALLOC_INIT_ZVAL(*fci->retval_ptr_ptr); + ZVAL_NULL(fci->retval); if (EX(function_state).function->common.scope) { EG(scope) = EX(function_state).function->common.scope; }