Re: [PATCH 18/26] fast-export: avoid leaking memory in handle_tag()
From: Johannes Schindelin <hidden>
Date: 2017-04-28 10:59:01
Hi Hannes, On Thu, 27 Apr 2017, Johannes Sixt wrote:
Am 26.04.2017 um 22:21 schrieb Johannes Schindelin:quoted
Reported by, you guessed it, Coverity. Signed-off-by: Johannes Schindelin <redacted> --- builtin/fast-export.c | 1 + 1 file changed, 1 insertion(+)diff --git a/builtin/fast-export.c b/builtin/fast-export.c index e0220630d00..828d41c0c11 100644 --- a/builtin/fast-export.c +++ b/builtin/fast-export.c@@ -765,6 +765,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)There is an early return in the function that is not covered by this patch.
Thanks!
Look for "case DROP".
Or for "return" ;-) I briefly looked into simply releasing the memory earlier, but the tagger variable used just before the inserted free(buf) actually points into the buffer, so I had to repeat the free(buf) for the early return. Thank you! Dscho