fetch: do not leak a refspec
authorJim Meyering <jim@meyering.net>
Wed, 8 Jun 2011 20:06:33 +0000 (22:06 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 9 Jun 2011 00:21:08 +0000 (17:21 -0700)
Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/fetch.c

index f9c41da475289b84fe849f7641406ebc94059630..93c99385a95e6ab525fa64c1dbb70d5d4ca103ba 100644 (file)
@@ -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;