From: Junio C Hamano Date: Tue, 22 May 2018 05:25:26 +0000 (+0900) Subject: Sync with Git 2.16.4 X-Git-Tag: v2.17.1~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=68f95b26e43f8183b9d1cdd41f42e99da43152bf;p=thirdparty%2Fgit.git Sync with Git 2.16.4 * maint-2.16: Git 2.16.4 Git 2.15.2 Git 2.14.4 Git 2.13.7 verify_path: disallow symlinks in .gitmodules update-index: stat updated files earlier verify_dotfile: mention case-insensitivity in comment verify_path: drop clever fallthrough skip_prefix: add case-insensitive variant is_{hfs,ntfs}_dotgitmodules: add tests is_ntfs_dotgit: match other .git files is_hfs_dotgit: match other .git files is_ntfs_dotgit: use a size_t for traversing string submodule-config: verify submodule names as paths --- 68f95b26e43f8183b9d1cdd41f42e99da43152bf diff --cc builtin/update-index.c index 58d1c2d282,52eaebae91..1af8a00b88 --- a/builtin/update-index.c +++ b/builtin/update-index.c @@@ -449,7 -448,17 +448,18 @@@ static void chmod_path(char flip, cons static void update_one(const char *path) { - if (!verify_path(path)) { + int stat_errno = 0; + struct stat st; + - if (mark_valid_only || mark_skip_worktree_only || force_remove) ++ if (mark_valid_only || mark_skip_worktree_only || force_remove || ++ mark_fsmonitor_only) + st.st_mode = 0; + else if (lstat(path, &st) < 0) { + st.st_mode = 0; + stat_errno = errno; + } /* else stat is valid */ + + if (!verify_path(path, st.st_mode)) { fprintf(stderr, "Ignoring path %s\n", path); return; } diff --cc dir.c index dedbf5d476,7c4b45e30e..41aac3b7b3 --- a/dir.c +++ b/dir.c @@@ -2992,8 -2972,6 +2992,8 @@@ void untracked_cache_invalidate_path(st { if (!istate->untracked || !istate->untracked->root) return; - if (!safe_path && !verify_path(path)) ++ if (!safe_path && !verify_path(path, 0)) + return; invalidate_one_component(istate->untracked, istate->untracked->root, path, strlen(path)); }