From 47ddf8f19f87c20f456c5798bc394bdab3583623 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Sat, 9 Oct 2021 09:41:01 -0700 Subject: [PATCH] macro: Fix memory leaks in error cases parsing function arguments. Found by Address Sanitizer. --- src/language/lexer/macro.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/language/lexer/macro.c b/src/language/lexer/macro.c index bced649ec3..a089a3a7c3 100644 --- a/src/language/lexer/macro.c +++ b/src/language/lexer/macro.c @@ -1135,7 +1135,10 @@ expand_macro_function (const struct macro_expander *me, struct string_array args = STRING_ARRAY_INITIALIZER; size_t n_consumed = parse_function_args (me, input, n_input, mf->name, &args); if (!n_consumed) - return 0; + { + string_array_destroy (&args); + return 0; + } if (args.n < mf->min_args || args.n > mf->max_args) { @@ -1158,6 +1161,7 @@ expand_macro_function (const struct macro_expander *me, mf->name); else NOT_REACHED (); + string_array_destroy (&args); return 0; } -- 2.30.2