summaryrefslogtreecommitdiff
path: root/read-cache.c
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2019-12-04 22:03:16 (GMT)
committerJohannes Schindelin <johannes.schindelin@gmx.de>2019-12-06 15:31:23 (GMT)
commit5421ddd8d08df7288538a5ca05aeeeaa789a7ccd (patch)
tree60e51065f2dd4ecd484bc1ee7e74c94f6ac810c3 /read-cache.c
parent75b2f01a0f642b39b0f29b6218515df9b5eb798e (diff)
parent367f12b7e92aef4e8a41fe601d90984a2b7a0381 (diff)
downloadgit-5421ddd8d08df7288538a5ca05aeeeaa789a7ccd.zip
git-5421ddd8d08df7288538a5ca05aeeeaa789a7ccd.tar.gz
git-5421ddd8d08df7288538a5ca05aeeeaa789a7ccd.tar.bz2
Sync with 2.21.1
* maint-2.21: (42 commits) Git 2.21.1 mingw: sh arguments need quoting in more circumstances mingw: fix quoting of empty arguments for `sh` mingw: use MSYS2 quoting even when spawning shell scripts mingw: detect when MSYS2's sh is to be spawned more robustly t7415: drop v2.20.x-specific work-around Git 2.20.2 t7415: adjust test for dubiously-nested submodule gitdirs for v2.20.x Git 2.19.3 Git 2.18.2 Git 2.17.3 Git 2.16.6 test-drop-caches: use `has_dos_drive_prefix()` Git 2.15.4 Git 2.14.6 mingw: handle `subst`-ed "DOS drives" mingw: refuse to access paths with trailing spaces or periods mingw: refuse to access paths with illegal characters unpack-trees: let merged_entry() pass through do_add_entry()'s errors quote-stress-test: offer to test quoting arguments for MSYS2 sh ...
Diffstat (limited to 'read-cache.c')
-rw-r--r--read-cache.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/read-cache.c b/read-cache.c
index 93a897f..f2c53eb 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -964,6 +964,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)
@@ -991,7 +994,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++;
}
}