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

[PATCH 2/2] Fix random sha1 in error message in http-fetch and http-push

From
Mike Hommey <mh@glandium.org>
Date
Dec 14, 2007, 21:18 UTC
Message-ID
<1197667081-9909-2-git-send-email-mh@glandium.org>
In-Reply-To
<1197667081-9909-1-git-send-email-mh@glandium.org>

When a downloaded ref doesn't contain a sha1, the error message displays a random sha1 because of uninitialized memory. This happens when cloning a repository that is already a clone of another one, in which case refs/remotes/origin/HEAD is a symref.

Signed-off-by: Mike Hommey <mh@glandium.org>
---

Please note that this is already fixed in my strbuf patch for these files, which had been applied in pu, but it seems to have disappeared from pu's history. This also means the strbuf patch conflicts with this one. Please tell me if you want a new strbuf patch made after this one.

 http-push.c   |    5 +++--
 http-walker.c |    5 +++--
 2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/http-push.c b/http-push.c
index fc60bfd..7f1d043 100644
--- a/http-push.c
+++ b/http-push.c
@@ -1149,9 +1149,10 @@ int fetch_ref(char *ref, unsigned char *sha1)
 		return error("Unable to start request");
 	}
 
+	if (buffer.posn != 41)
+		return 1;
         hex[40] = '\0';
-        get_sha1_hex(hex, sha1);
-        return 0;
+        return get_sha1_hex(hex, sha1);
 }
 
 static void one_remote_object(const char *hex)
diff --git a/http-walker.c b/http-walker.c
index a3fb596..68b5108 100644
--- a/http-walker.c
+++ b/http-walker.c
@@ -986,9 +986,10 @@ static int fetch_ref(struct walker *walker, char *ref, unsigned char *sha1)
 		return error("Unable to start request");
 	}
 
+	if (buffer.posn != 41)
+		return 1;
         hex[40] = '\0';
-        get_sha1_hex(hex, sha1);
-        return 0;
+        return get_sha1_hex(hex, sha1);
 }
 
 static void cleanup(struct walker *walker)
-- 
1.5.4.rc0.8.gbf4af-dirty
Previous: Mike HommeyNext: Junio C Hamano
Message 2 of 3 in “Fix some more memory leaks in http-push.c”
  1. 1/2 Fix some more memory leaks in http-push.cMike Hommey, Dec 14, 2007
  2. 2/2 Fix random sha1 in error message in http-fetch and http-pushMike Hommey, Dec 14, 2007
  3. Junio C HamanoDec 14, 2007

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.