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

RE: [PATCH 3/3] verify_path: consider dos drive prefix

From
TNTheo Niessink <niessink@martinic.com>
Date
Jun 8, 2011, 09:55 UTC
Message-ID
<DAFDEB13CE4944C18AAF3F20994AEF2E@martinic.local>
Junio C Hamano wrote:
> Here is what I queued last night. If it looks Ok then I'll merge it down
> to 'next'.

I have run a couple of quick tests, and everything seems OK, except the following backslashed paths, which are verified OK while they should be rejected:

foo\.\bar foo\..\bar

This is caused by verify_dotfile(), which doesn't use is_dir_sep(). So I propose this patch on verify_dotfile():

diff --git a/read-cache.c b/read-cache.c
index 282c0c1..72be7cd 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -726,11 +726,12 @@ static int verify_dotfile(const char *rest)
 	 * has already been discarded, we now test
 	 * the rest.
 	 */
-	switch (*rest) {
+
 	/* "." is not allowed */
-	case '\0': case '/':
+	if (*rest == '\0' || is_dir_sep(*rest))
 		return 0;
 
+	switch (*rest) {
 	/*
 	 * ".git" followed by  NUL or slash is bad. This
 	 * shares the path end test with the ".." case.
@@ -743,7 +744,7 @@ static int verify_dotfile(const char *rest)
 		rest += 2;
 	/* fallthrough */
 	case '.':
-		if (rest[1] == '\0' || rest[1] == '/')
+		if (rest[1] == '\0' || is_dir_sep(rest[1]))
 			return 0;
 	}
 	return 1;
Next: Erik Faye-Lund
Message 1 of 4 in “RE: [PATCH 3/3] verify_path: consider dos drive prefix”
  1. Theo NiessinkJun 8, 2011
  2. Erik Faye-LundJun 8, 2011
  3. Theo NiessinkJun 8, 2011
  4. Erik Faye-LundJun 8, 2011

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.