]> granicus.if.org Git - php/commitdiff
Error reporting on unset string offset was added (Bug #24773 Zend/tests/bug24773...
authorDmitry Stogov <dmitry@php.net>
Fri, 19 Dec 2003 11:26:52 +0000 (11:26 +0000)
committerDmitry Stogov <dmitry@php.net>
Fri, 19 Dec 2003 11:26:52 +0000 (11:26 +0000)
Zend/zend_execute.c

index d8ebbf24cd81d53cb896cf16008bff74ededa285..3601e4ce75b4236de1837c299a6c831c33e02eff 100644 (file)
@@ -1930,7 +1930,9 @@ int zend_fetch_dim_unset_handler(ZEND_OPCODE_HANDLER_ARGS)
        }
        */
        zend_fetch_dimension_address(&EX(opline)->result, &EX(opline)->op1, &EX(opline)->op2, EX(Ts), BP_VAR_R TSRMLS_CC);
-       if (EX_T(EX(opline)->result.u.var).var.ptr_ptr != NULL) {
+       if (EX_T(EX(opline)->result.u.var).var.ptr_ptr == NULL) {
+               zend_error(E_ERROR, "Cannot unset string offsets");
+       } else {
                PZVAL_UNLOCK(*EX_T(EX(opline)->result.u.var).var.ptr_ptr);
                if (EX_T(EX(opline)->result.u.var).var.ptr_ptr != &EG(uninitialized_zval_ptr)) {
                        SEPARATE_ZVAL_IF_NOT_REF(EX_T(EX(opline)->result.u.var).var.ptr_ptr);
@@ -3477,6 +3479,9 @@ int zend_unset_dim_obj_handler(ZEND_OPCODE_HANDLER_ARGS)
                                        }
                                        Z_OBJ_HT_P(*container)->unset_dimension(*container, offset TSRMLS_CC);
                                        break;
+                               case IS_STRING:
+                                       zend_error(E_ERROR, "Cannot unset string offsets");
+                                       break;
                                default:
                                        ht = NULL;
                                        break;