]> granicus.if.org Git - php/commitdiff
Fixed crashes introduced by 7e597f48e9fda982e930e4f617d2b2d98d8878a5 (only master...
authorDmitry Stogov <dmitry@zend.com>
Tue, 25 Dec 2018 20:30:59 +0000 (23:30 +0300)
committerDmitry Stogov <dmitry@zend.com>
Tue, 25 Dec 2018 20:30:59 +0000 (23:30 +0300)
Zend/zend_compile.c

index 73cf0e75e33fcefa230de1c24a9aecc92d2a4a2f..11a5256657c7cd7eec684863a7c24e04871c093f 100644 (file)
@@ -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;