fast-export: avoid leaking memory in handle_tag()
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Thu, 4 May 2017 13:57:33 +0000 (15:57 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 8 May 2017 03:18:20 +0000 (12:18 +0900)
Reported by, you guessed it, Coverity.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/fast-export.c
index e0220630d00cf2c069ce1a43e9511df57685acd2..64617ad8e362fff47381d34c36a914d9458a7d1a 100644 (file)
@@ -734,6 +734,7 @@ static void handle_tag(const char *name, struct tag *tag)
                             oid_to_hex(&tag->object.oid));
                case DROP:
                        /* Ignore this tag altogether */
+                       free(buf);
                        return;
                case REWRITE:
                        if (tagged->type != OBJ_COMMIT) {
@@ -765,6 +766,7 @@ static void handle_tag(const char *name, struct tag *tag)
               (int)(tagger_end - tagger), tagger,
               tagger == tagger_end ? "" : "\n",
               (int)message_size, (int)message_size, message ? message : "");
+       free(buf);
 }
 
 static struct commit *get_commit(struct rev_cmdline_entry *e, char *full_name)