From: Matthew Fernandez Date: Tue, 6 Dec 2022 15:23:21 +0000 (-0800) Subject: prune: fix memory leaks in list destruction X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c138b08e9be39a278f8ff5ec1c5fef1dc9211614;p=graphviz prune: fix memory leaks in list destruction This problem seems to have existed since the first Graphviz commit. --- diff --git a/contrib/prune/prune.c b/contrib/prune/prune.c index efe77ffde..4f0b20856 100644 --- a/contrib/prune/prune.c +++ b/contrib/prune/prune.c @@ -26,6 +26,11 @@ typedef struct { char *v; } strattr_t; +static void free_strattr(strattr_t s) { + free(s.n); + free(s.v); +} + DEFINE_LIST(attrs, strattr_t) DEFINE_LIST(nodes, char*) @@ -79,8 +84,8 @@ int main(int argc, char **argv) progname++; /* character after last '/' */ } - attrs_t attr_list = {0}; - nodes_t node_list = {0}; + attrs_t attr_list = {.dtor = free_strattr}; + nodes_t node_list = {.dtor = (void(*)(char*))free}; while ((c = getopt(argc, argv, "hvn:N:")) != -1) { switch (c) {