From 48384c7e2ff00cdfa239509969373bc9c8596370 Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Sat, 24 Oct 2020 16:08:41 -0400 Subject: [PATCH] [core] fix (startup) mem leaks in configparser.y (thx stbuehler) --- src/configparser.y | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/configparser.y b/src/configparser.y index a00e5554..defb6ac1 100644 --- a/src/configparser.y +++ b/src/configparser.y @@ -323,7 +323,10 @@ value(A) ::= key(B). { value(A) ::= STRING(B). { A = (data_unset *)data_string_init(); - buffer_copy_buffer(&((data_string *)A)->value, B); + /* assumes data_string_init() result does not require swap and buffer_free()*/ + memcpy(&((data_string *)A)->value, B, sizeof(*B)); + free(B); + B = NULL; } value(A) ::= INTEGER(B). { @@ -342,7 +345,9 @@ value(A) ::= INTEGER(B). { } value(A) ::= array(B). { A = (data_unset *)data_array_init(); - array_copy_array(&((data_array *)(A))->value, B); + /* assumes data_array_init() result does not require swap and array_free() */ + memcpy(&((data_array *)(A))->value, B, sizeof(*B)); + free(B); B = NULL; } array(A) ::= LPARAN RPARAN. {