diff options
author | Zeev Suraski <zeev@php.net> | 2004-02-11 13:01:39 +0000 |
---|---|---|
committer | Zeev Suraski <zeev@php.net> | 2004-02-11 13:01:39 +0000 |
commit | 75390796bed8ffe6e66ebd3e555cd25bdeab6571 (patch) | |
tree | 4e9d4720a58b5738006caa59f7b00b7bca5746ee | |
parent | 5731108c550ee8dfea673bdefb5eafa2c5536c38 (diff) | |
download | php-git-75390796bed8ffe6e66ebd3e555cd25bdeab6571.tar.gz |
Fix bug #25038
-rw-r--r-- | Zend/zend_execute_API.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index 3ace0a2565..02d8e8bae7 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -551,9 +551,18 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS if (EG(current_execute_data)) { execute_data = *EG(current_execute_data); } else { + /* This only happens when we're called outside any execute()'s + * It shouldn't be strictly necessary to NULL execute_data out, + * but it may make bugs easier to spot + */ memset(&execute_data, 0, sizeof(zend_execute_data)); } + /* we may return SUCCESS, and yet retval may be uninitialized, + * if there was an exception... + */ + *fci->retval_ptr_ptr = NULL; + if (!fci_cache || !fci_cache->initialized) { if (fci->function_name->type==IS_ARRAY) { /* assume array($obj, $name) couple */ zval **tmp_object_ptr, **tmp_real_function_name; |