From: David Soria Parra Date: Mon, 24 Jun 2013 13:38:48 +0000 (+0200) Subject: Fix #65108 (is_callable() triggers Fatal Error) X-Git-Tag: php-5.5.2RC1~36 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ecd9d7625098bfc0a14ffa1fc39535848e71fc80;p=php 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. --- diff --git a/NEWS b/NEWS index 2df33bc521..0a57834b75 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,7 @@ PHP NEWS - Core: . Fixed bug #65088 (Generated configure script is malformed on OpenBSD). (Adam) + . Fixed bug #65108 (is_callable() triggers Fatal Error). (David Soria Parra) OPcache . OPcache must be compatible with LiteSpeed SAPI (Dmitry) 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)) {