summaryrefslogtreecommitdiff
path: root/remote.c
diff options
context:
space:
mode:
authorStefan Beller <stefanbeller@gmail.com>2014-08-10 21:43:33 +0200
committerJunio C Hamano <gitster@pobox.com>2014-08-10 16:40:54 -0700
commit2f50babef18db3ca90b0b75f54d9c36d7a9142b3 (patch)
treef533eff21155222933ab3b30be8810b8b2370386 /remote.c
parent32f56600bb6ac6fc57183e79d2c1515dfa56672f (diff)
downloadgit-2f50babef18db3ca90b0b75f54d9c36d7a9142b3.tar.gz
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>
Diffstat (limited to 'remote.c')
-rw-r--r--remote.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/remote.c b/remote.c
index 0e9459cc06..a80518362d 100644
--- a/remote.c
+++ b/remote.c
@@ -1925,7 +1925,7 @@ int stat_tracking_info(struct branch *branch, int *num_ours, int *num_theirs)
int format_tracking_info(struct branch *branch, struct strbuf *sb)
{
int ours, theirs;
- const char *base;
+ char *base;
int upstream_is_gone = 0;
switch (stat_tracking_info(branch, &ours, &theirs)) {
@@ -1941,8 +1941,7 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb)
break;
}
- base = branch->merge[0]->dst;
- base = shorten_unambiguous_ref(base, 0);
+ base = shorten_unambiguous_ref(branch->merge[0]->dst, 0);
if (upstream_is_gone) {
strbuf_addf(sb,
_("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)
strbuf_addf(sb,
_(" (use \"git pull\" to merge the remote branch into yours)\n"));
}
+ free(base);
return 1;
}