]> granicus.if.org Git - php/commitdiff
Addtional fixes of #70918
authorXinchen Hui <laruence@gmail.com>
Mon, 16 Nov 2015 10:19:22 +0000 (18:19 +0800)
committerXinchen Hui <laruence@gmail.com>
Mon, 16 Nov 2015 10:19:22 +0000 (18:19 +0800)
Zend/tests/bug70918.phpt
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 68eaef43a3272f3072ab7b48239cbd65c94df4b1..81e2192d8a47f3fd6a7e64a2e0b440684edecd8b 100644 (file)
@@ -19,8 +19,29 @@ try {
 } catch (Error $e) {
        var_dump($e->getMessage());
 }
+
+try {
+       new static;
+} catch (Error $e) {
+       var_dump($e->getMessage());
+}
+
+try {
+       static::x();
+} catch (Error $e) {
+       var_dump($e->getMessage());
+}
+
+try {
+       static::$i;
+} catch (Error $e) {
+       var_dump($e->getMessage());
+}
 ?>
 --EXPECT--
 string(52) "Cannot access static:: when no class scope is active"
 string(52) "Cannot access parent:: when no class scope is active"
 string(50) "Cannot access self:: when no class scope is active"
+string(52) "Cannot access static:: when no class scope is active"
+string(52) "Cannot access static:: when no class scope is active"
+string(52) "Cannot access static:: when no class scope is active"
index 1096296395ebc6de2ef2eed3f7238ae601207b82..a6537800fd2893c80c7e0536489e3d9e251494dc 100644 (file)
@@ -1650,6 +1650,10 @@ ZEND_VM_HELPER_EX(zend_fetch_static_prop_helper, CONST|TMPVAR|CV, UNUSED|CONST|V
        } else {
                if (OP2_TYPE == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -3111,6 +3115,10 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, UNUSED|CONST|VAR, CONST|TMPVA
                }
        } else if (OP1_TYPE == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op1.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op1.var));
        }
@@ -4988,6 +4996,10 @@ ZEND_VM_HANDLER(68, ZEND_NEW, UNUSED|CONST|VAR, JMP_ADDR, NUM)
                }
        } else if (OP1_TYPE == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op1.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op1.var));
        }
@@ -5681,6 +5693,10 @@ ZEND_VM_HANDLER(179, ZEND_UNSET_STATIC_PROP, CONST|TMPVAR|CV, UNUSED|CONST|VAR)
                }
        } else if (OP2_TYPE == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op2.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op2.var));
        }
@@ -6570,6 +6586,10 @@ ZEND_VM_HANDLER(180, ZEND_ISSET_ISEMPTY_STATIC_PROP, CONST|TMPVAR|CV, UNUSED|CON
        } else {
                if (OP2_TYPE == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -7137,6 +7157,10 @@ ZEND_VM_C_LABEL(try_instanceof):
                        }
                } else if (OP2_TYPE == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
index d78021853928248ad1cf22cee5ffdd029d006c21..975143a50a180828f263fbad36868149ea71649d 100644 (file)
@@ -3363,6 +3363,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NEW_SPEC_CONST_HANDLER(ZEND_OP
                }
        } else if (IS_CONST == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op1.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op1.var));
        }
@@ -4985,6 +4989,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
        } else {
                if (IS_CONST == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -5576,6 +5584,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
                }
        } else if (IS_CONST == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op1.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op1.var));
        }
@@ -6056,6 +6068,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_STATIC_PROP_SPEC_CONST_C
                }
        } else if (IS_CONST == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op2.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op2.var));
        }
@@ -6105,6 +6121,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_STATIC_PROP_SPEC
        } else {
                if (IS_CONST == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -6766,6 +6786,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
        } else {
                if (IS_VAR == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -6882,6 +6906,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_STATIC_PROP_SPEC_CONST_V
                }
        } else if (IS_VAR == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op2.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op2.var));
        }
@@ -6931,6 +6959,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_STATIC_PROP_SPEC
        } else {
                if (IS_VAR == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -7290,6 +7322,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
        } else {
                if (IS_UNUSED == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -7437,6 +7473,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
                }
        } else if (IS_CONST == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op1.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op1.var));
        }
@@ -7824,6 +7864,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_STATIC_PROP_SPEC_CONST_U
                }
        } else if (IS_UNUSED == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op2.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op2.var));
        }
@@ -7930,6 +7974,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_STATIC_PROP_SPEC
        } else {
                if (IS_UNUSED == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -9237,6 +9285,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
                }
        } else if (IS_CONST == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op1.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op1.var));
        }
@@ -11047,6 +11099,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
                }
        } else if (IS_CONST == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op1.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op1.var));
        }
@@ -15246,6 +15302,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NEW_SPEC_VAR_HANDLER(ZEND_OPCO
                }
        } else if (IS_VAR == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op1.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op1.var));
        }
@@ -17370,6 +17430,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
                }
        } else if (IS_VAR == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op1.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op1.var));
        }
@@ -18972,6 +19036,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
                }
        } else if (IS_VAR == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op1.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op1.var));
        }
@@ -20593,6 +20661,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
                }
        } else if (IS_VAR == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op1.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op1.var));
        }
@@ -22165,6 +22237,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
                }
        } else if (IS_VAR == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op1.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op1.var));
        }
@@ -22566,6 +22642,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NEW_SPEC_UNUSED_HANDLER(ZEND_O
                }
        } else if (IS_UNUSED == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op1.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op1.var));
        }
@@ -23729,6 +23809,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_U
                }
        } else if (IS_UNUSED == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op1.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op1.var));
        }
@@ -25076,6 +25160,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_U
                }
        } else if (IS_UNUSED == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op1.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op1.var));
        }
@@ -26430,6 +26518,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_U
                }
        } else if (IS_UNUSED == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op1.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op1.var));
        }
@@ -28059,6 +28151,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_U
                }
        } else if (IS_UNUSED == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op1.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op1.var));
        }
@@ -31477,6 +31573,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
        } else {
                if (IS_CONST == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -32598,6 +32698,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_STATIC_PROP_SPEC_CV_CONS
                }
        } else if (IS_CONST == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op2.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op2.var));
        }
@@ -32788,6 +32892,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_STATIC_PROP_SPEC
        } else {
                if (IS_CONST == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -33036,6 +33144,10 @@ try_instanceof:
                        }
                } else if (IS_CONST == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -33578,6 +33690,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
        } else {
                if (IS_VAR == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -33781,6 +33897,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_STATIC_PROP_SPEC_CV_VAR_
                }
        } else if (IS_VAR == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op2.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op2.var));
        }
@@ -33830,6 +33950,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_STATIC_PROP_SPEC
        } else {
                if (IS_VAR == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -33895,6 +34019,10 @@ try_instanceof:
                        }
                } else if (IS_VAR == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -34545,6 +34673,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
        } else {
                if (IS_UNUSED == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -35093,6 +35225,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_STATIC_PROP_SPEC_CV_UNUS
                }
        } else if (IS_UNUSED == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op2.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op2.var));
        }
@@ -35199,6 +35335,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_STATIC_PROP_SPEC
        } else {
                if (IS_UNUSED == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -35264,6 +35404,10 @@ try_instanceof:
                        }
                } else if (IS_UNUSED == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -41784,6 +41928,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
        } else {
                if (IS_CONST == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -42299,6 +42447,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_STATIC_PROP_SPEC_TMPVAR_
                }
        } else if (IS_CONST == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op2.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op2.var));
        }
@@ -42348,6 +42500,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_STATIC_PROP_SPEC
        } else {
                if (IS_CONST == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -42597,6 +42753,10 @@ try_instanceof:
                        }
                } else if (IS_CONST == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -42666,6 +42826,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
        } else {
                if (IS_VAR == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -42784,6 +42948,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_STATIC_PROP_SPEC_TMPVAR_
                }
        } else if (IS_VAR == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op2.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op2.var));
        }
@@ -42833,6 +43001,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_STATIC_PROP_SPEC
        } else {
                if (IS_VAR == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -42899,6 +43071,10 @@ try_instanceof:
                        }
                } else if (IS_VAR == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -43098,6 +43274,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
        } else {
                if (IS_UNUSED == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -43271,6 +43451,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_STATIC_PROP_SPEC_TMPVAR_
                }
        } else if (IS_UNUSED == IS_UNUSED) {
                ce = zend_fetch_class(NULL, opline->op2.num);
+               if (UNEXPECTED(ce == NULL)) {
+                       ZEND_ASSERT(EG(exception));
+                       HANDLE_EXCEPTION();
+               }
        } else {
                ce = Z_CE_P(EX_VAR(opline->op2.var));
        }
@@ -43378,6 +43562,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ISSET_ISEMPTY_STATIC_PROP_SPEC
        } else {
                if (IS_UNUSED == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }
@@ -43444,6 +43632,10 @@ try_instanceof:
                        }
                } else if (IS_UNUSED == IS_UNUSED) {
                        ce = zend_fetch_class(NULL, opline->op2.num);
+                       if (UNEXPECTED(ce == NULL)) {
+                               ZEND_ASSERT(EG(exception));
+                               HANDLE_EXCEPTION();
+                       }
                } else {
                        ce = Z_CE_P(EX_VAR(opline->op2.var));
                }