remote.c: don't leak the base branch name in format_tracking_info

Found by scan.coverity.com (Id: 1127809) Signed-off-by: Stefan Beller <stefanbeller@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Stefan Beller committed Aug 10, 2014 at 21:43 UTC 2f50babef18db3ca90b0b75f54d9c36d7a9142b3
1 file changed +3 -3
remote.c
+3 -3
@@ -1925,7 +1925,7 @@ int stat_tracking_info(struct branch *branch, int *num_ours, int *num_theirs)
1925 int format_tracking_info(struct branch *branch, struct strbuf *sb)
1926 {
1927 int ours, theirs;
1928 - const char *base;
1928 + char *base;
1929 int upstream_is_gone = 0;
1930
1931 switch (stat_tracking_info(branch, &ours, &theirs)) {
@@ -1941,8 +1941,7 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb)
1941 break;
1942 }
1943
1944 - base = branch->merge[0]->dst;
1945 - base = shorten_unambiguous_ref(base, 0);
1944 + base = shorten_unambiguous_ref(branch->merge[0]->dst, 0);
1945 if (upstream_is_gone) {
1946 strbuf_addf(sb,
1947 _("Your branch is based on '%s', but the upstream is gone.\n"),
@@ -1988,6 +1987,7 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb)
1987 strbuf_addf(sb,
1988 _(" (use \"git pull\" to merge the remote branch into yours)\n"));
1989 }
1990 + free(base);
1991 return 1;
1992 }
1993