path: also guard .gitmodules against NTFS Alternate Data Streams

We just safe-guarded `.git` against NTFS Alternate Data Stream-related
attack vectors, and now it is time to do the same for `.gitmodules`.

Note: In the added regression test, we refrain from verifying all kinds
of variations between short names and NTFS Alternate Data Streams: as
the new code disallows _all_ Alternate Data Streams of `.gitmodules`, it
is enough to test one in order to know that all of them are guarded
against.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
Johannes Schindelin
2019-08-28 12:22:17 +02:00
parent 7c3745fc61
commit 91bd46588e
2 changed files with 7 additions and 2 deletions

2
path.c
View File

@ -1369,7 +1369,7 @@ static int is_ntfs_dot_generic(const char *name,
only_spaces_and_periods:
for (;;) {
char c = name[i++];
if (!c)
if (!c || c == ':')
return 1;
if (c != ' ' && c != '.')
return 0;