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

[PATCH 2/2] get_fetch_map(): tighten checks on dest refs

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 20, 2012, 17:39 UTC
Message-ID
<1345484397-10958-3-git-send-email-gitster@pobox.com>
In-Reply-To
<1345484397-10958-1-git-send-email-gitster@pobox.com>

The code to check the refname we store the fetched result locally did not bother checking the first 5 bytes of it, presumably assuming that it always begin with "refs/". For a fetch refspec (or the result of applying wildcard on one), we always want the RHS to map to something inside "refs/" hierarchy, so let's spell that rule out in a more explicit way.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 remote.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/remote.c b/remote.c
index eacd8ad..0f2b1db 100644
--- a/remote.c
+++ b/remote.c
@@ -1402,8 +1402,8 @@ int get_fetch_map(const struct ref *remote_refs,
 
 	for (rmp = &ref_map; *rmp; ) {
 		if ((*rmp)->peer_ref) {
-			if (check_refname_format((*rmp)->peer_ref->name + 5,
-				REFNAME_ALLOW_ONELEVEL)) {
+			if (prefixcmp((*rmp)->peer_ref->name, "refs/") ||
+			    check_refname_format((*rmp)->peer_ref->name, 0)) {
 				struct ref *ignore = *rmp;
 				error("* Ignoring funny ref '%s' locally",
 				      (*rmp)->peer_ref->name);
-- 
1.7.12.92.g7963261
Previous: Junio C Hamano
Message 8 of 8 in “further fixes of check_ref_format() users”
  1. 0/2 further fixes of check_ref_format() usersJunio C Hamano, Aug 20, 2012
  2. 1/2 fetch/push: allow refs/*:refs/*Junio C Hamano, Aug 20, 2012
  3. Michael HaggertyAug 21, 2012
  4. Junio C HamanoAug 21, 2012
  5. Michael HaggertyAug 22, 2012
  6. Junio C HamanoAug 22, 2012
  7. Junio C HamanoAug 22, 2012
  8. 2/2 get_fetch_map(): tighten checks on dest refsJunio C Hamano, Aug 20, 2012

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.