From 99edcf7b998a1ac83b75ef3cc117c5b91c874782 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Wed, 7 Aug 2024 13:52:38 -0400 Subject: Fix leaks in tpl functions (#18) * Free the function key string in tplfunc_frame during tpl_free() * Fix leaks in get_github_release_notes_auto_tplfunc_entrypoint(): * Free repository name * Free list of release notes --- src/template.c | 1 + src/template_func_proto.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/template.c b/src/template.c index 8e1357c..a412fa8 100644 --- a/src/template.c +++ b/src/template.c @@ -97,6 +97,7 @@ void tpl_free() { } for (unsigned i = 0; i < tpl_pool_func_used; i++) { struct tplfunc_frame *item = tpl_pool_func[i]; + guard_free(item->key); guard_free(item); } } diff --git a/src/template_func_proto.c b/src/template_func_proto.c index f29c103..92ae355 100644 --- a/src/template_func_proto.c +++ b/src/template_func_proto.c @@ -54,6 +54,7 @@ int get_github_release_notes_auto_tplfunc_entrypoint(void *frame, void *data_out strlist_append(¬es_list, note); guard_free(note); } + guard_free(repository); } } } @@ -61,5 +62,7 @@ int get_github_release_notes_auto_tplfunc_entrypoint(void *frame, void *data_out if (strlist_count(notes_list)) { *output = join(notes_list->data, "\n\n"); } + guard_strlist_free(¬es_list); + return result; } -- cgit