diff options
author | Dmitry Stogov <dmitry@zend.com> | 2018-12-25 23:30:59 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2018-12-25 23:30:59 +0300 |
commit | 636b16402b7c086e51d80d709508391aa95ebed3 (patch) | |
tree | 24f7e1ebe2857158027fd7a4283afa295f9d0199 | |
parent | a111dfae0b877a17e8eb5c8bc8250b5d6bde4f3f (diff) | |
download | php-git-636b16402b7c086e51d80d709508391aa95ebed3.tar.gz |
Fixed crashes introduced by 7e597f48e9fda982e930e4f617d2b2d98d8878a5 (only master was affected)
-rw-r--r-- | Zend/zend_compile.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 73cf0e75e3..11a5256657 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -4057,7 +4057,10 @@ void zend_compile_static_call(znode *result, zend_ast *ast, uint32_t type) /* {{ fbc = zend_hash_find_ptr(&ce->function_table, lcname); if (fbc && !(fbc->common.fn_flags & ZEND_ACC_PUBLIC)) { if (ce != CG(active_class_entry) - &&((fbc->common.fn_flags & ZEND_ACC_PRIVATE) + && ((fbc->common.fn_flags & ZEND_ACC_PRIVATE) + || !(fbc->common.scope->ce_flags & ZEND_ACC_LINKED) + || (CG(active_class_entry) + && !(CG(active_class_entry)->ce_flags & ZEND_ACC_LINKED)) || !zend_check_protected(zend_get_function_root_class(fbc), CG(active_class_entry)))) { /* incompatibe function */ fbc = NULL; |