verify_dotfile(): reject .git case-insensitively
We do not allow ".git" to enter into the index as a path component, because checking out the result to the working tree may causes confusion for subsequent git commands. However, on case-insensitive file systems, ".Git" or ".GIT" is the same. We should catch and prevent those, too. Note that technically we could allow this for repos on case-sensitive filesystems. But there's not much point. It's unlikely that anybody cares, and it creates a repository that is unexpectedly non-portable to other systems. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
96b50cc190
commit
cc2fc7c2f0
@ -759,9 +759,10 @@ static int verify_dotfile(const char *rest)
|
||||
* shares the path end test with the ".." case.
|
||||
*/
|
||||
case 'g':
|
||||
if (rest[1] != 'i')
|
||||
case 'G':
|
||||
if (rest[1] != 'i' && rest[1] != 'I')
|
||||
break;
|
||||
if (rest[2] != 't')
|
||||
if (rest[2] != 't' && rest[2] != 'T')
|
||||
break;
|
||||
rest += 2;
|
||||
/* fallthrough */
|
||||
|
@ -27,6 +27,7 @@ done <<-\EOF
|
||||
.
|
||||
..
|
||||
.git
|
||||
.GIT
|
||||
EOF
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user