diff options
Diffstat (limited to 'read-cache.c')
-rw-r--r-- | read-cache.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/read-cache.c b/read-cache.c index 4b35e87847..d614a3e8f3 100644 --- a/read-cache.c +++ b/read-cache.c @@ -868,6 +868,9 @@ int verify_path(const char *path, unsigned mode) if (has_dos_drive_prefix(path)) return 0; + if (!is_valid_path(path)) + return 0; + goto inside; for (;;) { if (!c) @@ -895,7 +898,15 @@ inside: if ((c == '.' && !verify_dotfile(path, mode)) || is_dir_sep(c) || c == '\0') return 0; + } else if (c == '\\' && protect_ntfs) { + if (is_ntfs_dotgit(path)) + return 0; + if (S_ISLNK(mode)) { + if (is_ntfs_dotgitmodules(path)) + return 0; + } } + c = *path++; } } |