git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Stefan Beller <stefanbeller@gmail.com>
Date
Aug 10, 2014, 19:43 UTC
Message-ID
<1407699813-1460-1-git-send-email-stefanbeller@gmail.com>
In-Reply-To
<20140810193242.GA9886@peff.net>
Found by scan.coverity.com (Id: 1127809)
Signed-off-by: Stefan Beller <stefanbeller@gmail.com>
---
 remote.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/remote.c b/remote.c
index 3d6c86a..894db09 100644
--- a/remote.c
+++ b/remote.c
@@ -1920,7 +1920,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)) {
@@ -1936,8 +1936,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"),
@@ -1983,6 +1982,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;
 }
 
-- 
2.1.0.rc2
Previous: Jeff KingNext: Junio C Hamano
Message 5 of 6 in “remote.c: don't leak the base branch name in format_tracking_info”
  1. 1/2 remote.c: don't leak the base branch name in format_tracking_infoStefan Beller, Aug 10, 2014
  2. 2/2 clone.c: don't leak memory in cmd_cloneStefan Beller, Aug 10, 2014
  3. Stefan BellerAug 10, 2014
  4. Jeff KingAug 10, 2014
  5. remote.c: don't leak the base branch name in format_tracking_infoStefan Beller, Aug 10, 2014
  6. Junio C HamanoAug 10, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.