summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2011-06-08 20:06:33 (GMT)
committerJunio C Hamano <gitster@pobox.com>2011-06-09 00:21:08 (GMT)
commitd8ead15963890a42f99fd0e7f3192b55cacd9404 (patch)
treeb948e7dbd4bdcd03a75955aac5e10aed665f9e61
parente5af0de202e885b793482d416b8ce9d50dd2b8bc (diff)
downloadgit-d8ead15963890a42f99fd0e7f3192b55cacd9404.zip
git-d8ead15963890a42f99fd0e7f3192b55cacd9404.tar.gz
git-d8ead15963890a42f99fd0e7f3192b55cacd9404.tar.bz2
fetch: do not leak a refspec
Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin/fetch.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/builtin/fetch.c b/builtin/fetch.c
index f9c41da..93c9938 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -875,6 +875,7 @@ static int fetch_one(struct remote *remote, int argc, const char **argv)
{
int i;
static const char **refs = NULL;
+ struct refspec *refspec;
int ref_nr = 0;
int exit_code;
@@ -915,8 +916,9 @@ static int fetch_one(struct remote *remote, int argc, const char **argv)
sigchain_push_common(unlock_pack_on_signal);
atexit(unlock_pack);
- exit_code = do_fetch(transport,
- parse_fetch_refspec(ref_nr, refs), ref_nr);
+ refspec = parse_fetch_refspec(ref_nr, refs);
+ exit_code = do_fetch(transport, refspec, ref_nr);
+ free(refspec);
transport_disconnect(transport);
transport = NULL;
return exit_code;