diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2023-10-31 15:37:52 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2023-10-31 15:37:52 -0400 |
commit | 68cf0a0045673221d20f4629c9533b85c50ad055 (patch) | |
tree | 4d9957420c6dc15975e5a2eaf945d8fde4595d93 /src | |
parent | e85405d5115ef309655ac944e5def36b0191bc40 (diff) | |
download | stasis-68cf0a0045673221d20f4629c9533b85c50ad055.tar.gz |
Fixes memory leak in conv_ macros
Diffstat (limited to 'src')
-rw-r--r-- | src/deliverable.c | 7 |
1 files changed, 4 insertions, 3 deletions
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; |