@@ -1248,7 +1248,9 @@ binary_assign_op_addr: {
1248
1248
NEXT_OPCODE ();
1249
1249
case ZEND_FETCH_UNSET :
1250
1250
zend_fetch_var_address (& opline -> result , & opline -> op1 , & opline -> op2 , Ts , BP_VAR_R ELS_CC );
1251
- AI_USE_PTR (Ts [opline -> result .u .var ].var );
1251
+ if (Ts [opline -> result .u .var ].var .ptr_ptr != & EG (uninitialized_zval_ptr )) {
1252
+ SEPARATE_ZVAL (Ts [opline -> result .u .var ].var .ptr_ptr );
1253
+ }
1252
1254
NEXT_OPCODE ();
1253
1255
case ZEND_FETCH_IS :
1254
1256
zend_fetch_var_address (& opline -> result , & opline -> op1 , & opline -> op2 , Ts , BP_VAR_IS ELS_CC );
@@ -1282,11 +1284,15 @@ binary_assign_op_addr: {
1282
1284
}
1283
1285
NEXT_OPCODE ();
1284
1286
case ZEND_FETCH_DIM_UNSET :
1287
+ /* Not needed in DIM_UNSET
1285
1288
if (opline->extended_value == ZEND_FETCH_ADD_LOCK) {
1286
1289
PZVAL_LOCK(*Ts[opline->op1.u.var].var.ptr_ptr);
1287
1290
}
1291
+ */
1288
1292
zend_fetch_dimension_address (& opline -> result , & opline -> op1 , & opline -> op2 , Ts , BP_VAR_R ELS_CC );
1289
- AI_USE_PTR (Ts [opline -> result .u .var ].var );
1293
+ if (Ts [opline -> result .u .var ].var .ptr_ptr != & EG (uninitialized_zval_ptr )) {
1294
+ SEPARATE_ZVAL (Ts [opline -> result .u .var ].var .ptr_ptr );
1295
+ }
1290
1296
NEXT_OPCODE ();
1291
1297
case ZEND_FETCH_OBJ_R :
1292
1298
zend_fetch_property_address (& opline -> result , & opline -> op1 , & opline -> op2 , Ts , BP_VAR_R ELS_CC );
@@ -1313,7 +1319,9 @@ binary_assign_op_addr: {
1313
1319
NEXT_OPCODE ();
1314
1320
case ZEND_FETCH_OBJ_UNSET :
1315
1321
zend_fetch_property_address (& opline -> result , & opline -> op1 , & opline -> op2 , Ts , BP_VAR_R ELS_CC );
1316
- AI_USE_PTR (Ts [opline -> result .u .var ].var );
1322
+ if (Ts [opline -> result .u .var ].var .ptr_ptr != & EG (uninitialized_zval_ptr )) {
1323
+ SEPARATE_ZVAL (Ts [opline -> result .u .var ].var .ptr_ptr );
1324
+ }
1317
1325
NEXT_OPCODE ();
1318
1326
case ZEND_FETCH_DIM_TMP_VAR :
1319
1327
zend_fetch_dimension_address_from_tmp_var (& opline -> result , & opline -> op1 , & opline -> op2 , Ts ELS_CC );
0 commit comments