mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Fixed memory leak introduced by 7cb5bdf64a
This commit is contained in:
parent
2283b6ff53
commit
7be2637dce
1 changed files with 7 additions and 7 deletions
|
@ -391,7 +391,7 @@ static zend_always_inline int process_nested_data(UNSERIALIZE_PARAMETER, HashTab
|
||||||
ZVAL_UNDEF(&key);
|
ZVAL_UNDEF(&key);
|
||||||
|
|
||||||
if (!php_var_unserialize_internal(&key, p, max, NULL)) {
|
if (!php_var_unserialize_internal(&key, p, max, NULL)) {
|
||||||
zval_dtor(&key);
|
zval_ptr_dtor(&key);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -421,7 +421,7 @@ numeric_key:
|
||||||
data = zend_hash_add_new(ht, Z_STR(key), &d);
|
data = zend_hash_add_new(ht, Z_STR(key), &d);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
zval_dtor(&key);
|
zval_ptr_dtor(&key);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -435,7 +435,7 @@ string_key:
|
||||||
size_t unmangled_prop_len;
|
size_t unmangled_prop_len;
|
||||||
|
|
||||||
if (UNEXPECTED(zend_unmangle_property_name_ex(Z_STR(key), &unmangled_class, &unmangled_prop, &unmangled_prop_len) == FAILURE)) {
|
if (UNEXPECTED(zend_unmangle_property_name_ex(Z_STR(key), &unmangled_class, &unmangled_prop, &unmangled_prop_len) == FAILURE)) {
|
||||||
zval_dtor(&key);
|
zval_ptr_dtor(&key);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -465,7 +465,7 @@ string_key:
|
||||||
new_key = unmangled;
|
new_key = unmangled;
|
||||||
}
|
}
|
||||||
zend_string_release(Z_STR(key));
|
zend_string_release(Z_STR(key));
|
||||||
Z_STR(key) = new_key;
|
ZVAL_STR(&key, new_key);
|
||||||
} else {
|
} else {
|
||||||
zend_string_release(unmangled);
|
zend_string_release(unmangled);
|
||||||
}
|
}
|
||||||
|
@ -485,13 +485,13 @@ string_key:
|
||||||
convert_to_string(&key);
|
convert_to_string(&key);
|
||||||
goto string_key;
|
goto string_key;
|
||||||
} else {
|
} else {
|
||||||
zval_dtor(&key);
|
zval_ptr_dtor(&key);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!php_var_unserialize_internal(data, p, max, var_hash)) {
|
if (!php_var_unserialize_internal(data, p, max, var_hash)) {
|
||||||
zval_dtor(&key);
|
zval_ptr_dtor(&key);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -505,7 +505,7 @@ string_key:
|
||||||
var_push_dtor(var_hash, data);
|
var_push_dtor(var_hash, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
zval_dtor(&key);
|
zval_ptr_dtor(&key);
|
||||||
|
|
||||||
if (elements && *(*p-1) != ';' && *(*p-1) != '}') {
|
if (elements && *(*p-1) != ';' && *(*p-1) != '}') {
|
||||||
(*p)--;
|
(*p)--;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue