]> granicus.if.org Git - php/commitdiff
Fixed bug #78531 (Crash when using undefined variable as object
authorDmitry Stogov <dmitry@zend.com>
Thu, 12 Sep 2019 22:42:02 +0000 (01:42 +0300)
committerDmitry Stogov <dmitry@zend.com>
Thu, 12 Sep 2019 22:42:02 +0000 (01:42 +0300)
NEWS
Zend/tests/bug78531.phpt [new file with mode: 0644]
Zend/zend_execute.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

diff --git a/NEWS b/NEWS
index 95f229afc71a68dbde64f1fb18914baa569acd5d..ae8780f26b18a8f4c91b5ec384ceae0db04bc6a1 100644 (file)
--- 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 (file)
index 0000000..ba460ee
--- /dev/null
@@ -0,0 +1,18 @@
+--TEST--
+Bug #78531 (Crash when using undefined variable as object)
+--FILE--
+<?php
+@$u1->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
index bbfb53932161f0398e30f439f01aaee4a68bef2e..42822785cb70b413ddfa8cb3e2754617ea226b2b 100644 (file)
@@ -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 */
index fa3940720cb870b13de2f57e7fd728e373bf53ee..c33b4f1b69e10771ee3754bb9823869e7606e086 100644 (file)
@@ -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;
                                }
index 3c587611cdf879770207fc9d69f6d76a613782e7..a657e020890ba7fd9e4413697a2d9118a5b695f7 100644 (file)
@@ -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;
                                }