Skip to content

Commit

Permalink
Merge pull request git-for-windows#2437 from dscho/only-error-on-back…
Browse files Browse the repository at this point in the history
…slash-in-index

Disallow writing, but not fetching commits with file names containing backslashes
  • Loading branch information
dscho committed Jan 9, 2020
2 parents 4d42adc + d6e3142 commit f6c393d
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
12 changes: 6 additions & 6 deletions read-cache.c
Original file line number Diff line number Diff line change
Expand Up @@ -959,7 +959,7 @@ static int verify_dotfile(const char *rest, unsigned mode)

int verify_path(const char *path, unsigned mode)
{
char c;
char c = 0;

if (has_dos_drive_prefix(path))
return 0;
Expand All @@ -974,6 +974,7 @@ int verify_path(const char *path, unsigned mode)
if (is_dir_sep(c)) {
inside:
if (protect_hfs) {

if (is_hfs_dotgit(path))
return 0;
if (S_ISLNK(mode)) {
Expand All @@ -982,6 +983,10 @@ int verify_path(const char *path, unsigned mode)
}
}
if (protect_ntfs) {
#ifdef GIT_WINDOWS_NATIVE
if (c == '\\')
return 0;
#endif
if (is_ntfs_dotgit(path))
return 0;
if (S_ISLNK(mode)) {
Expand Down Expand Up @@ -1278,11 +1283,6 @@ static int add_index_entry_with_check(struct index_state *istate, struct cache_e
int skip_df_check = option & ADD_CACHE_SKIP_DFCHECK;
int new_only = option & ADD_CACHE_NEW_ONLY;

#ifdef GIT_WINDOWS_NATIVE
if (protect_ntfs && strchr(ce->name, '\\'))
return error(_("filename in tree entry contains backslash: '%s'"), ce->name);
#endif

if (!(option & ADD_CACHE_KEEP_CACHE_TREE))
cache_tree_invalidate_path(istate, ce->name);

Expand Down
2 changes: 1 addition & 1 deletion t/t7415-submodule-names.sh
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ test_expect_success MINGW 'prevent git~1 squatting on Windows' '
hash="$(echo x | git hash-object -w --stdin)" &&
test_must_fail git update-index --add \
--cacheinfo 160000,$rev,d\\a 2>err &&
test_i18ngrep backslash err &&
test_i18ngrep "Invalid path" err &&
git -c core.protectNTFS=false update-index --add \
--cacheinfo 100644,$modules,.gitmodules \
--cacheinfo 160000,$rev,c \
Expand Down

0 comments on commit f6c393d

Please sign in to comment.