From: Junio C Hamano Date: Mon, 24 Nov 2008 03:51:36 GMT Subject: Re: [PATCH 1/4] builtin-clone: fix a memory leak in cmd_clone() Message-ID: <7vabbpok6v.fsf@gitster.siamese.dyndns.org> In-Reply-To: <6bd31bceb3840f14d747972b4858e1c5b215744d.1227227976.git.vmiklos@frugalware.org> Miklos Vajna writes: > Signed-off-by: Miklos Vajna > --- > builtin-clone.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/builtin-clone.c b/builtin-clone.c > index 8e1a1d3..da21cab 100644 > --- a/builtin-clone.c > +++ b/builtin-clone.c > @@ -516,6 +516,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix) > refs = transport_get_remote_refs(transport); > transport_fetch_refs(transport, refs); > } > + free(dir); > > clear_extra_refs(); Can't this be done much earlier? This variable can potentially be assigned to work_tree, but after we set up the atexit handler neither dir nor work_tree are not used (it is a bit hard to see as this function itself is a bit too big to be maintainable).