Skip to content

Commit d9ec53b

Browse files
committed
Fix segfault
1 parent 7847a00 commit d9ec53b

File tree

2 files changed

+4
-0
lines changed

2 files changed

+4
-0
lines changed

Zend/zend_vm_def.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5899,6 +5899,7 @@ ZEND_VM_HANDLER(181, ZEND_FETCH_CLASS_CONSTANT, VAR|CONST|UNUSED|CLASS_FETCH, CO
58995899
// Enums require loading of all class constants to build the backed enum table
59005900
if (ce->ce_flags & ZEND_ACC_ENUM && ce->enum_backing_type != IS_UNDEF && ce->type == ZEND_USER_CLASS && !(ce->ce_flags & ZEND_ACC_CONSTANTS_UPDATED)) {
59015901
if (UNEXPECTED(zend_update_class_constants(ce) == FAILURE)) {
5902+
ZVAL_UNDEF(EX_VAR(opline->result.var));
59025903
HANDLE_EXCEPTION();
59035904
}
59045905
}

Zend/zend_vm_execute.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7068,6 +7068,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_CONSTANT_SPEC_CONS
70687068
// Enums require loading of all class constants to build the backed enum table
70697069
if (ce->ce_flags & ZEND_ACC_ENUM && ce->enum_backing_type != IS_UNDEF && ce->type == ZEND_USER_CLASS && !(ce->ce_flags & ZEND_ACC_CONSTANTS_UPDATED)) {
70707070
if (UNEXPECTED(zend_update_class_constants(ce) == FAILURE)) {
7071+
ZVAL_UNDEF(EX_VAR(opline->result.var));
70717072
HANDLE_EXCEPTION();
70727073
}
70737074
}
@@ -24619,6 +24620,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_CONSTANT_SPEC_VAR_
2461924620
// Enums require loading of all class constants to build the backed enum table
2462024621
if (ce->ce_flags & ZEND_ACC_ENUM && ce->enum_backing_type != IS_UNDEF && ce->type == ZEND_USER_CLASS && !(ce->ce_flags & ZEND_ACC_CONSTANTS_UPDATED)) {
2462124622
if (UNEXPECTED(zend_update_class_constants(ce) == FAILURE)) {
24623+
ZVAL_UNDEF(EX_VAR(opline->result.var));
2462224624
HANDLE_EXCEPTION();
2462324625
}
2462424626
}
@@ -33463,6 +33465,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_CONSTANT_SPEC_UNUS
3346333465
// Enums require loading of all class constants to build the backed enum table
3346433466
if (ce->ce_flags & ZEND_ACC_ENUM && ce->enum_backing_type != IS_UNDEF && ce->type == ZEND_USER_CLASS && !(ce->ce_flags & ZEND_ACC_CONSTANTS_UPDATED)) {
3346533467
if (UNEXPECTED(zend_update_class_constants(ce) == FAILURE)) {
33468+
ZVAL_UNDEF(EX_VAR(opline->result.var));
3346633469
HANDLE_EXCEPTION();
3346733470
}
3346833471
}

0 commit comments

Comments
 (0)