]> git.ipfire.org Git - thirdparty/git.git/commitdiff
range-diff: avoid leaking memory in two error code paths
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Thu, 4 Feb 2021 20:07:49 +0000 (20:07 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 5 Feb 2021 01:16:42 +0000 (17:16 -0800)
In the code paths in question, we already release a lot of memory, but
the `current_filename` variable was missed. Fix that.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
range-diff.c

index b9950f10c8c486b16a2b916b0898d88c8d82fb59..a4d7a90ddeaa170da48df51cbe79b8537be81c1c 100644 (file)
@@ -97,6 +97,7 @@ static int read_patches(const char *range, struct string_list *list,
                        if (get_oid(p, &util->oid)) {
                                error(_("could not parse commit '%s'"), p);
                                free(util);
+                               free(current_filename);
                                string_list_clear(list, 1);
                                strbuf_release(&buf);
                                strbuf_release(&contents);
@@ -112,6 +113,7 @@ static int read_patches(const char *range, struct string_list *list,
                        error(_("could not parse first line of `log` output: "
                                "did not start with 'commit ': '%s'"),
                              line);
+                       free(current_filename);
                        string_list_clear(list, 1);
                        strbuf_release(&buf);
                        strbuf_release(&contents);