Merge branch 'bc/checkout-tracking-name-plug-leak'
authorJunio C Hamano <gitster@pobox.com>
Thu, 27 Jun 2013 21:29:46 +0000 (14:29 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 27 Jun 2013 21:29:46 +0000 (14:29 -0700)
Plug a small leak in checkout.

* bc/checkout-tracking-name-plug-leak:
t/t9802: explicitly name the upstream branch to use as a base
builtin/checkout.c: don't leak memory in check_tracking_name

builtin/checkout.c
t/t9802-git-p4-filetype.sh
index f5b50e520feb42c50cd1783871eb63d009e0a0e0..3be00188216f503ea1f9269acd312aebdb72a0fa 100644 (file)
@@ -838,13 +838,16 @@ static int check_tracking_name(struct remote *remote, void *cb_data)
        memset(&query, 0, sizeof(struct refspec));
        query.src = cb->src_ref;
        if (remote_find_tracking(remote, &query) ||
-           get_sha1(query.dst, cb->dst_sha1))
+           get_sha1(query.dst, cb->dst_sha1)) {
+               free(query.dst);
                return 0;
+       }
        if (cb->dst_ref) {
+               free(query.dst);
                cb->unique = 0;
                return 0;
        }
-       cb->dst_ref = xstrdup(query.dst);
+       cb->dst_ref = query.dst;
        return 0;
 }
 
index eeefa6790454d83bfb4ce740f7b1843c6a71c79c..b0d1d94bf417a7c3cdd4f1b07334416aacbee18d 100755 (executable)
@@ -95,7 +95,7 @@ test_expect_success 'gitattributes setting eol=lf produces lf newlines' '
                git init &&
                echo "* eol=lf" >.gitattributes &&
                git p4 sync //depot@all &&
-               git checkout master &&
+               git checkout -b master p4/master &&
                test_cmp "$cli"/f-unix-orig f-unix &&
                test_cmp "$cli"/f-win-as-lf f-win
        )
@@ -109,7 +109,7 @@ test_expect_success 'gitattributes setting eol=crlf produces crlf newlines' '
                git init &&
                echo "* eol=crlf" >.gitattributes &&
                git p4 sync //depot@all &&
-               git checkout master &&
+               git checkout -b master p4/master &&
                test_cmp "$cli"/f-unix-as-crlf f-unix &&
                test_cmp "$cli"/f-win-orig f-win
        )