Skip to content

Commit 5d0687e

Browse files
committed
Assert exception set in HANDLE_EXCEPTION()
Some code paths were checking this manually, but we can turn this into a general assertion to avoid surprises (functions returning failure without throwing).
1 parent fb91611 commit 5d0687e

File tree

3 files changed

+10
-65
lines changed

3 files changed

+10
-65
lines changed

Zend/zend_vm_def.h

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1094,7 +1094,6 @@ ZEND_VM_HANDLER(29, ZEND_ASSIGN_STATIC_PROP_OP, ANY, ANY, OP)
10941094
SAVE_OPLINE();
10951095

10961096
if (UNEXPECTED(zend_fetch_static_property_address(&prop, &prop_info, (opline+1)->extended_value, BP_VAR_RW, 0 OPLINE_CC EXECUTE_DATA_CC) != SUCCESS)) {
1097-
ZEND_ASSERT(EG(exception));
10981097
UNDEF_RESULT();
10991098
FREE_UNFETCHED_OP_DATA();
11001099
HANDLE_EXCEPTION();
@@ -3523,7 +3522,6 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, UNUSED|CLASS_FETCH|CONST|VAR,
35233522
if (UNEXPECTED(ce == NULL)) {
35243523
ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
35253524
if (UNEXPECTED(ce == NULL)) {
3526-
ZEND_ASSERT(EG(exception));
35273525
FREE_UNFETCHED_OP2();
35283526
HANDLE_EXCEPTION();
35293527
}
@@ -3534,7 +3532,6 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, UNUSED|CLASS_FETCH|CONST|VAR,
35343532
} else if (OP1_TYPE == IS_UNUSED) {
35353533
ce = zend_fetch_class(NULL, opline->op1.num);
35363534
if (UNEXPECTED(ce == NULL)) {
3537-
ZEND_ASSERT(EG(exception));
35383535
FREE_UNFETCHED_OP2();
35393536
HANDLE_EXCEPTION();
35403537
}
@@ -5294,7 +5291,6 @@ ZEND_VM_HANDLER(68, ZEND_NEW, UNUSED|CLASS_FETCH|CONST|VAR, UNUSED|CACHE_SLOT, N
52945291
if (UNEXPECTED(ce == NULL)) {
52955292
ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
52965293
if (UNEXPECTED(ce == NULL)) {
5297-
ZEND_ASSERT(EG(exception));
52985294
ZVAL_UNDEF(EX_VAR(opline->result.var));
52995295
HANDLE_EXCEPTION();
53005296
}
@@ -5303,7 +5299,6 @@ ZEND_VM_HANDLER(68, ZEND_NEW, UNUSED|CLASS_FETCH|CONST|VAR, UNUSED|CACHE_SLOT, N
53035299
} else if (OP1_TYPE == IS_UNUSED) {
53045300
ce = zend_fetch_class(NULL, opline->op1.num);
53055301
if (UNEXPECTED(ce == NULL)) {
5306-
ZEND_ASSERT(EG(exception));
53075302
ZVAL_UNDEF(EX_VAR(opline->result.var));
53085303
HANDLE_EXCEPTION();
53095304
}
@@ -5450,7 +5445,6 @@ ZEND_VM_HANDLER(181, ZEND_FETCH_CLASS_CONSTANT, VAR|CONST|UNUSED|CLASS_FETCH, CO
54505445
} else {
54515446
ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op1)), Z_STR_P(RT_CONSTANT(opline, opline->op1) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
54525447
if (UNEXPECTED(ce == NULL)) {
5453-
ZEND_ASSERT(EG(exception));
54545448
ZVAL_UNDEF(EX_VAR(opline->result.var));
54555449
HANDLE_EXCEPTION();
54565450
}
@@ -5459,7 +5453,6 @@ ZEND_VM_HANDLER(181, ZEND_FETCH_CLASS_CONSTANT, VAR|CONST|UNUSED|CLASS_FETCH, CO
54595453
if (OP1_TYPE == IS_UNUSED) {
54605454
ce = zend_fetch_class(NULL, opline->op1.num);
54615455
if (UNEXPECTED(ce == NULL)) {
5462-
ZEND_ASSERT(EG(exception));
54635456
ZVAL_UNDEF(EX_VAR(opline->result.var));
54645457
HANDLE_EXCEPTION();
54655458
}
@@ -5955,7 +5948,6 @@ ZEND_VM_COLD_HANDLER(179, ZEND_UNSET_STATIC_PROP, ANY, ANY, CACHE_SLOT)
59555948
if (UNEXPECTED(ce == NULL)) {
59565949
ce = zend_fetch_class_by_name(Z_STR_P(RT_CONSTANT(opline, opline->op2)), Z_STR_P(RT_CONSTANT(opline, opline->op2) + 1), ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
59575950
if (UNEXPECTED(ce == NULL)) {
5958-
ZEND_ASSERT(EG(exception));
59595951
FREE_UNFETCHED_OP1();
59605952
HANDLE_EXCEPTION();
59615953
}
@@ -5964,7 +5956,6 @@ ZEND_VM_COLD_HANDLER(179, ZEND_UNSET_STATIC_PROP, ANY, ANY, CACHE_SLOT)
59645956
} else if (OP2_TYPE == IS_UNUSED) {
59655957
ce = zend_fetch_class(NULL, opline->op2.num);
59665958
if (UNEXPECTED(ce == NULL)) {
5967-
ZEND_ASSERT(EG(exception));
59685959
FREE_UNFETCHED_OP1();
59695960
HANDLE_EXCEPTION();
59705961
}
@@ -7232,7 +7223,6 @@ ZEND_VM_C_LABEL(try_instanceof):
72327223
} else if (OP2_TYPE == IS_UNUSED) {
72337224
ce = zend_fetch_class(NULL, opline->op2.num);
72347225
if (UNEXPECTED(ce == NULL)) {
7235-
ZEND_ASSERT(EG(exception));
72367226
FREE_OP1();
72377227
ZVAL_UNDEF(EX_VAR(opline->result.var));
72387228
HANDLE_EXCEPTION();

0 commit comments

Comments
 (0)