From 51d9f32dbeae2ffdc6e9f01d4f542a8e03f24baf Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Fri, 13 Sep 2019 01:42:02 +0300 Subject: [PATCH] Fixed bug #78531 (Crash when using undefined variable as object --- NEWS | 3 ++ Zend/tests/bug78531.phpt | 18 +++++++++ Zend/zend_execute.c | 2 +- Zend/zend_vm_def.h | 9 ++--- Zend/zend_vm_execute.h | 80 ++++++++++++++++++---------------------- 5 files changed, 62 insertions(+), 50 deletions(-) create mode 100644 Zend/tests/bug78531.phpt diff --git a/NEWS b/NEWS index 95f229afc7..ae8780f26b 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,9 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? ????, PHP 7.4.0RC2 +- Core: + . Fixed bug #78531 (Crash when using undefined variable as object). (Dmitry) + - FFI: . Added missing FFI::isNull(). (Philip Hofstetter) . Fixed bug #78488 (OOB in ZEND_FUNCTION(ffi_trampoline)). (Dmitry) diff --git a/Zend/tests/bug78531.phpt b/Zend/tests/bug78531.phpt new file mode 100644 index 0000000000..ba460ee05a --- /dev/null +++ b/Zend/tests/bug78531.phpt @@ -0,0 +1,18 @@ +--TEST-- +Bug #78531 (Crash when using undefined variable as object) +--FILE-- +a += 5; +var_dump($u1->a); +@$x = ++$u2->a; +var_dump($u2->a); +@$x = $u3->a++; +var_dump($u3->a); +@$u4->a->a += 5; +var_dump($u4->a->a); +?> +--EXPECT-- +int(5) +int(1) +int(1) +int(5) \ No newline at end of file diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index bbfb539321..42822785cb 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -2760,7 +2760,7 @@ static zend_always_inline void zend_fetch_property_address(zval *result, zval *c if (container_op_type == IS_CV && type != BP_VAR_W && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - container = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } /* this should modify object only if it's empty */ diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index fa3940720c..c33b4f1b69 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -1088,7 +1088,7 @@ ZEND_VM_HANDLER(28, ZEND_ASSIGN_OBJ_OP, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, OP) } if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -1263,7 +1263,6 @@ ZEND_VM_C_LABEL(assign_dim_op_new_array): zend_binary_assign_op_obj_dim(container, dim OPLINE_CC EXECUTE_DATA_CC); } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) { - ZVAL_NULL(container); ZVAL_UNDEFINED_OP1(); } ZVAL_ARR(container, zend_new_array(8)); @@ -1347,7 +1346,7 @@ ZEND_VM_HANDLER(132, ZEND_PRE_INC_OBJ, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CACH } if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -1413,7 +1412,7 @@ ZEND_VM_HANDLER(134, ZEND_POST_INC_OBJ, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CAC } if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -6249,7 +6248,7 @@ ZEND_VM_HANDLER(76, ZEND_UNSET_OBJ, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, CACHE_S if (Z_TYPE_P(container) != IS_OBJECT) { if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - container = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } break; } diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 3c587611cd..a657e02089 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -21997,7 +21997,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_OP_SPEC_VAR_CONST_H } if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -22124,7 +22124,6 @@ assign_dim_op_new_array: zend_binary_assign_op_obj_dim(container, dim OPLINE_CC EXECUTE_DATA_CC); } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) { - ZVAL_NULL(container); ZVAL_UNDEFINED_OP1(); } ZVAL_ARR(container, zend_new_array(8)); @@ -22206,7 +22205,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_VAR_CONST_HAN } if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -22266,7 +22265,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_VAR_CONST_HA } if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -24040,7 +24039,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_CONST_HANDL if (Z_TYPE_P(container) != IS_OBJECT) { if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - container = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } break; } @@ -24266,7 +24265,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_OP_SPEC_VAR_TMPVAR_ } if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -24393,7 +24392,6 @@ assign_dim_op_new_array: zend_binary_assign_op_obj_dim(container, dim OPLINE_CC EXECUTE_DATA_CC); } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) { - ZVAL_NULL(container); ZVAL_UNDEFINED_OP1(); } ZVAL_ARR(container, zend_new_array(8)); @@ -24477,7 +24475,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_VAR_TMPVAR_HA } if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -24538,7 +24536,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_VAR_TMPVAR_H } if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -26188,7 +26186,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_TMPVAR_HAND if (Z_TYPE_P(container) != IS_OBJECT) { if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - container = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } break; } @@ -26777,7 +26775,6 @@ assign_dim_op_new_array: zend_binary_assign_op_obj_dim(container, dim OPLINE_CC EXECUTE_DATA_CC); } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) { - ZVAL_NULL(container); ZVAL_UNDEFINED_OP1(); } ZVAL_ARR(container, zend_new_array(8)); @@ -27928,7 +27925,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_OP_SPEC_VAR_CV_HAND } if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -28055,7 +28052,6 @@ assign_dim_op_new_array: zend_binary_assign_op_obj_dim(container, dim OPLINE_CC EXECUTE_DATA_CC); } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) { - ZVAL_NULL(container); ZVAL_UNDEFINED_OP1(); } ZVAL_ARR(container, zend_new_array(8)); @@ -28137,7 +28133,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_VAR_CV_HANDLE } if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -28197,7 +28193,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_VAR_CV_HANDL } if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -29939,7 +29935,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_CV_HANDLER( if (Z_TYPE_P(container) != IS_OBJECT) { if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - container = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } break; } @@ -30378,7 +30374,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_CONS } if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -30465,7 +30461,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_UNUSED_CONST_ } if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -30525,7 +30521,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_UNUSED_CONST } if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -31964,7 +31960,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_CONST_HA if (Z_TYPE_P(container) != IS_OBJECT) { if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - container = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } break; } @@ -32192,7 +32188,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_TMPV } if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -32279,7 +32275,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_UNUSED_TMPVAR } if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -32340,7 +32336,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_UNUSED_TMPVA } if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -33689,7 +33685,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_TMPVAR_H if (Z_TYPE_P(container) != IS_OBJECT) { if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - container = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } break; } @@ -34690,7 +34686,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_OP_SPEC_UNUSED_CV_H } if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -34777,7 +34773,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_UNUSED_CV_HAN } if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -34837,7 +34833,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_UNUSED_CV_HA } if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -36184,7 +36180,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_CV_HANDL if (Z_TYPE_P(container) != IS_OBJECT) { if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - container = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } break; } @@ -38772,7 +38768,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_OP_SPEC_CV_CONST_HA } if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -38899,7 +38895,6 @@ assign_dim_op_new_array: zend_binary_assign_op_obj_dim(container, dim OPLINE_CC EXECUTE_DATA_CC); } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) { - ZVAL_NULL(container); ZVAL_UNDEFINED_OP1(); } ZVAL_ARR(container, zend_new_array(8)); @@ -38981,7 +38976,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_CV_CONST_HAND } if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -39041,7 +39036,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_CV_CONST_HAN } if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -41121,7 +41116,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_CV_CONST_HANDLE if (Z_TYPE_P(container) != IS_OBJECT) { if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - container = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } break; } @@ -42252,7 +42247,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_OP_SPEC_CV_TMPVAR_H } if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -42379,7 +42374,6 @@ assign_dim_op_new_array: zend_binary_assign_op_obj_dim(container, dim OPLINE_CC EXECUTE_DATA_CC); } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) { - ZVAL_NULL(container); ZVAL_UNDEFINED_OP1(); } ZVAL_ARR(container, zend_new_array(8)); @@ -42463,7 +42457,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_CV_TMPVAR_HAN } if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -42524,7 +42518,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_CV_TMPVAR_HA } if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -44545,7 +44539,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_CV_TMPVAR_HANDL if (Z_TYPE_P(container) != IS_OBJECT) { if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - container = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } break; } @@ -45340,7 +45334,6 @@ assign_dim_op_new_array: zend_binary_assign_op_obj_dim(container, dim OPLINE_CC EXECUTE_DATA_CC); } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) { - ZVAL_NULL(container); ZVAL_UNDEFINED_OP1(); } ZVAL_ARR(container, zend_new_array(8)); @@ -47316,7 +47309,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_OBJ_OP_SPEC_CV_CV_HANDL } if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -47443,7 +47436,6 @@ assign_dim_op_new_array: zend_binary_assign_op_obj_dim(container, dim OPLINE_CC EXECUTE_DATA_CC); } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) { if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_INFO_P(container) == IS_UNDEF)) { - ZVAL_NULL(container); ZVAL_UNDEFINED_OP1(); } ZVAL_ARR(container, zend_new_array(8)); @@ -47525,7 +47517,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_OBJ_SPEC_CV_CV_HANDLER } if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -47585,7 +47577,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_POST_INC_OBJ_SPEC_CV_CV_HANDLE } if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(object) == IS_UNDEF)) { - object = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } object = make_real_object(object, property OPLINE_CC EXECUTE_DATA_CC); if (UNEXPECTED(!object)) { @@ -49699,7 +49691,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_CV_CV_HANDLER(Z if (Z_TYPE_P(container) != IS_OBJECT) { if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(container) == IS_UNDEF)) { - container = ZVAL_UNDEFINED_OP1(); + ZVAL_UNDEFINED_OP1(); } break; } -- 2.40.0