diff options
author | Junio C Hamano <gitster@pobox.com> | 2014-12-17 11:11:15 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-12-17 11:11:15 -0800 |
commit | 2aa910084681a6cbfb0928b2d9c4d0f9ce54e1b8 (patch) | |
tree | 1aeb9ab0f337c278560d7ea72deb21f9c5e45de7 /read-cache.c | |
parent | eeff891ac756fd97a05476446f15269b714ce4cc (diff) | |
parent | d08c13b947335cc48ecc1a8453d97b7147c2d6d6 (diff) | |
download | git-2aa910084681a6cbfb0928b2d9c4d0f9ce54e1b8.tar.gz |
Merge branch 'dotgit-case-maint-1.8.5' into maint-1.8.5
* dotgit-case-maint-1.8.5:
fsck: complain about NTFS ".git" aliases in trees
read-cache: optionally disallow NTFS .git variants
path: add is_ntfs_dotgit() helper
fsck: complain about HFS+ ".git" aliases in trees
read-cache: optionally disallow HFS+ .git variants
utf8: add is_hfs_dotgit() helper
fsck: notice .git case-insensitively
t1450: refactor ".", "..", and ".git" fsck tests
verify_dotfile(): reject .git case-insensitively
read-tree: add tests for confusing paths like ".." and ".git"
unpack-trees: propagate errors adding entries to the index
Diffstat (limited to 'read-cache.c')
-rw-r--r-- | read-cache.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/read-cache.c b/read-cache.c index 33dd676ccb..4fa208b662 100644 --- a/read-cache.c +++ b/read-cache.c @@ -14,6 +14,7 @@ #include "resolve-undo.h" #include "strbuf.h" #include "varint.h" +#include "utf8.h" static struct cache_entry *refresh_cache_entry(struct cache_entry *ce, int really); @@ -759,9 +760,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 */ @@ -785,6 +787,10 @@ int verify_path(const char *path) return 1; if (is_dir_sep(c)) { inside: + if (protect_hfs && is_hfs_dotgit(path)) + return 0; + if (protect_ntfs && is_ntfs_dotgit(path)) + return 0; c = *path++; if ((c == '.' && !verify_dotfile(path)) || is_dir_sep(c) || c == '\0') |