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