diff options
author | David Soria Parra <dsp@php.net> | 2013-06-24 15:38:48 +0200 |
---|---|---|
committer | David Soria Parra <dsp@php.net> | 2013-06-24 15:55:10 +0200 |
commit | ecd9d7625098bfc0a14ffa1fc39535848e71fc80 (patch) | |
tree | ee161b071fe80cf5d92f47ca7f02db10e5f0dba5 /Zend | |
parent | 9da4985bf2d532ed72fbd3a7d3390464692cce7a (diff) | |
download | php-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.c | 2 |
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)) { |