summaryrefslogtreecommitdiff
path: root/Zend/zend_execute_API.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2005-09-02 07:47:28 +0000
committerDmitry Stogov <dmitry@php.net>2005-09-02 07:47:28 +0000
commit6319efa013ecca8d50918ccde7c5fc18113fdc81 (patch)
tree7bce4351061b77c517e2681692611c75e434dc9e /Zend/zend_execute_API.c
parent44840ace8ece5eb95fb5ad89e0a65680fa0ca3c5 (diff)
downloadphp-git-6319efa013ecca8d50918ccde7c5fc18113fdc81.tar.gz
Fixed bug #34260 (Segfault with callbacks (array_map) + overloading)
Diffstat (limited to 'Zend/zend_execute_API.c')
-rw-r--r--Zend/zend_execute_API.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index 4a131ccf29..dcc1249f80 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -750,7 +750,9 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
return FAILURE;
}
}
- if (fci_cache) {
+ if (fci_cache &&
+ (EX(function_state).function->type != ZEND_INTERNAL_FUNCTION ||
+ ((zend_internal_function*)EX(function_state).function)->handler != zend_std_call_user_call)) {
fci_cache->function_handler = EX(function_state).function;
fci_cache->object_pp = fci->object_pp;
fci_cache->calling_scope = calling_scope;