From 9bf80ef3852814150f0721f2ecbe6ca8d57975f2 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Thu, 27 Dec 2018 10:42:52 +0300 Subject: [PATCH] Respect static method visibility --- ext/opcache/Optimizer/zend_optimizer.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ext/opcache/Optimizer/zend_optimizer.c b/ext/opcache/Optimizer/zend_optimizer.c index 6d2a31b238..e70696c26b 100644 --- a/ext/opcache/Optimizer/zend_optimizer.c +++ b/ext/opcache/Optimizer/zend_optimizer.c @@ -984,7 +984,14 @@ zend_function *zend_optimizer_get_called_func( script, op_array, opline, rt_constants); if (ce) { zend_string *func_name = Z_STR_P(GET_OP(op2) + 1); - return zend_hash_find_ptr(&ce->function_table, func_name); + zend_function *fbc = zend_hash_find_ptr(&ce->function_table, func_name); + if (fbc) { + zend_bool is_public = (fbc->common.fn_flags & ZEND_ACC_PUBLIC) != 0; + zend_bool same_scope = fbc->common.scope == op_array->scope; + if (is_public|| same_scope) { + return fbc; + } + } } } break; -- 2.50.1