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; -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html