com php-src: Fixed memory leak introduced by 7cb5bdf64a95bd70623d33d6ea122c13b01113bd: ext/standard/var_un serializer.re
| From: | Dmitry Stogov | Date: | Mon, 10 Jul 2017 14:34:30 +0000 |
| Subject: | com php-src: Fixed memory leak introduced by 7cb5bdf64a95bd70623d33d6ea122c13b01113bd: ext/standard/var_un serializer.re | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-98497@lists.php.net to get a copy of this message | ||
Commit: 7be2637dcea08442fc697088d119328b262b582d
Author: Dmitry Stogov <dmitry@zend.com> Mon, 10 Jul 2017 17:34:30 +0300
Parents: 2283b6ff534e173bc56dc73137fedd19f37fc979
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=7be2637dcea08442fc697088d119328b262b582d
Log:
Fixed memory leak introduced by 7cb5bdf64a95bd70623d33d6ea122c13b01113bd
Changed paths:
M ext/standard/var_unserializer.re
Diff:
diff --git a/ext/standard/var_unserializer.re b/ext/standard/var_unserializer.re
index 6e7f76f..1285d41 100644
--- a/ext/standard/var_unserializer.re
+++ b/ext/standard/var_unserializer.re
@@ -391,7 +391,7 @@ static zend_always_inline int process_nested_data(UNSERIALIZE_PARAMETER, HashTab
ZVAL_UNDEF(&key);
if (!php_var_unserialize_internal(&key, p, max, NULL)) {
- zval_dtor(&key);
+ zval_ptr_dtor(&key);
return 0;
}
@@ -421,7 +421,7 @@ numeric_key:
data = zend_hash_add_new(ht, Z_STR(key), &d);
}
} else {
- zval_dtor(&key);
+ zval_ptr_dtor(&key);
return 0;
}
} else {
@@ -435,7 +435,7 @@ string_key:
size_t unmangled_prop_len;
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;
}
@@ -465,7 +465,7 @@ string_key:
new_key = unmangled;
}
zend_string_release(Z_STR(key));
- Z_STR(key) = new_key;
+ ZVAL_STR(&key, new_key);
} else {
zend_string_release(unmangled);
}
@@ -485,13 +485,13 @@ string_key:
convert_to_string(&key);
goto string_key;
} else {
- zval_dtor(&key);
+ zval_ptr_dtor(&key);
return 0;
}
}
if (!php_var_unserialize_internal(data, p, max, var_hash)) {
- zval_dtor(&key);
+ zval_ptr_dtor(&key);
return 0;
}
@@ -505,7 +505,7 @@ string_key:
var_push_dtor(var_hash, data);
}
- zval_dtor(&key);
+ zval_ptr_dtor(&key);
if (elements && *(*p-1) != ';' && *(*p-1) != '}') {
(*p)--;