summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorDavid Soria Parra <dsp@php.net>2013-06-24 15:38:48 +0200
committerDavid Soria Parra <dsp@php.net>2013-06-24 15:55:10 +0200
commitecd9d7625098bfc0a14ffa1fc39535848e71fc80 (patch)
treeee161b071fe80cf5d92f47ca7f02db10e5f0dba5 /Zend
parent9da4985bf2d532ed72fbd3a7d3390464692cce7a (diff)
downloadphp-git-ecd9d7625098bfc0a14ffa1fc39535848e71fc80.tar.gz
Fix #65108 (is_callable() triggers Fatal Error)
We have to check if the fcall info cache contains a pointer if we use __call, otherwise we endup in a static lookup.
Diffstat (limited to 'Zend')
-rw-r--r--Zend/zend_API.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index 56c7c245b5..439d80913f 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -2842,7 +2842,7 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca
}
if ((check_flags & IS_CALLABLE_CHECK_NO_ACCESS) == 0 &&
(fcc->calling_scope &&
- (fcc->calling_scope->__call ||
+ ((fcc->calling_scope->__call && fcc->object_ptr) ||
fcc->calling_scope->__callstatic))) {
if (fcc->function_handler->op_array.fn_flags & ZEND_ACC_PRIVATE) {
if (!zend_check_private(fcc->function_handler, fcc->object_ptr ? Z_OBJCE_P(fcc->object_ptr) : EG(scope), lmname, mlen TSRMLS_CC)) {