aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2023-10-31 15:37:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2023-10-31 15:37:52 -0400
commit68cf0a0045673221d20f4629c9533b85c50ad055 (patch)
tree4d9957420c6dc15975e5a2eaf945d8fde4595d93 /src
parente85405d5115ef309655ac944e5def36b0191bc40 (diff)
downloadstasis-68cf0a0045673221d20f4629c9533b85c50ad055.tar.gz
Fixes memory leak in conv_ macros
Diffstat (limited to 'src')
-rw-r--r--src/deliverable.c7
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;