From 68cf0a0045673221d20f4629c9533b85c50ad055 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Tue, 31 Oct 2023 15:37:52 -0400 Subject: Fixes memory leak in conv_ macros --- src/deliverable.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/deliverable.c b/src/deliverable.c index 15fcb44..596a13d 100644 --- a/src/deliverable.c +++ b/src/deliverable.c @@ -16,12 +16,13 @@ #define conv_int(X, DEST) X->DEST = val.as_int; #define conv_str(X, DEST) X->DEST = runtime_expand_var(NULL, val.as_char_p); -#define conv_str_noexpand(X, DEST) X->DEST = val.as_char_p; +#define conv_str_noexpand(X, DEST) if (val.as_char_p) X->DEST = strdup(val.as_char_p); #define conv_strlist(X, DEST, TOK) { \ - runtime_expand_var(NULL, val.as_char_p); \ + char *rtevnop = runtime_expand_var(NULL, val.as_char_p); \ if (!X->DEST) \ X->DEST = strlist_init(); \ - strlist_append_tokenize(X->DEST, val.as_char_p, TOK); \ + strlist_append_tokenize(X->DEST, rtevnop, TOK); \ + free(rtevnop);\ } #define conv_bool(X, DEST) X->DEST = val.as_bool; -- cgit