Fixed crash in Zend/tests/unset_cv09.phpt
authorDmitry Stogov <dmitry@php.net>
Mon, 26 Apr 2010 13:51:46 +0000 (13:51 +0000)
committerDmitry Stogov <dmitry@php.net>
Mon, 26 Apr 2010 13:51:46 +0000 (13:51 +0000)
Zend/zend_execute_API.c

index 18b7368509482a2c25951eb67003d93205d7ffd1..a0dcb48e64fc42662201b0420c2e6917f4d7f4df 100644 (file)
@@ -1696,7 +1696,7 @@ ZEND_API int zend_delete_global_variable_ex(char *name, int name_len, ulong hash
 {
        zend_execute_data *ex;
 
-       if (zend_hash_quick_del(&EG(symbol_table), name, name_len + 1, hash_value) == SUCCESS) {
+       if (zend_hash_quick_exists(&EG(symbol_table), name, name_len + 1, hash_value)) {
                for (ex = EG(current_execute_data); ex; ex = ex->prev_execute_data) {
                        if (ex->op_array && ex->symbol_table == &EG(symbol_table)) {
                                int i;
@@ -1711,7 +1711,7 @@ ZEND_API int zend_delete_global_variable_ex(char *name, int name_len, ulong hash
                                }
                        }
                }
-               return SUCCESS;
+               return zend_hash_quick_del(&EG(symbol_table), name, name_len + 1, hash_value);
        }
        return FAILURE;
 }