mingw: refuse paths containing reserved names
There are a couple of reserved names that cannot be file names on Windows, such as `AUX`, `NUL`, etc. For an almost complete list, see https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file If one would try to create a directory named `NUL`, it would actually "succeed", i.e. the call would return success, but nothing would be created. Worse, even adding a file extension to the reserved name does not make it a valid file name. To understand the rationale behind that behavior, see https://devblogs.microsoft.com/oldnewthing/20031022-00/?p=42073 Let's just disallow them all. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
98d9b23e90
commit
4dc42c6c18
@ -465,11 +465,14 @@ test_expect_success 'match .gitmodules' '
|
||||
'
|
||||
|
||||
test_expect_success MINGW 'is_valid_path() on Windows' '
|
||||
test-tool path-utils is_valid_path \
|
||||
test-tool path-utils is_valid_path \
|
||||
win32 \
|
||||
"win32 x" \
|
||||
../hello.txt \
|
||||
C:\\git \
|
||||
comm \
|
||||
conout.c \
|
||||
lptN \
|
||||
\
|
||||
--not \
|
||||
"win32 " \
|
||||
@ -477,7 +480,13 @@ test_expect_success MINGW 'is_valid_path() on Windows' '
|
||||
"win32." \
|
||||
"win32 . ." \
|
||||
.../hello.txt \
|
||||
colon:test
|
||||
colon:test \
|
||||
"AUX.c" \
|
||||
"abc/conOut\$ .xyz/test" \
|
||||
lpt8 \
|
||||
"lpt*" \
|
||||
Nul \
|
||||
"PRN./abc"
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Reference in New Issue
Block a user