1
0
mirror of https://github.com/golang/go synced 2024-09-24 03:10:16 -06:00

cmd/go/internal/modload: treat \ as a path separator instead of a shell special character

According to the code comment, \ should be treated as a path separator.
See fileNameOK in golang.org/x/mod/module/module.go.

Change-Id: I05e05246005191ecccfecf46848aba5cb1359956
Reviewed-on: https://go-review.googlesource.com/c/go/+/310429
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Trust: Robert Findley <rfindley@google.com>
This commit is contained in:
SataQiu 2021-04-15 23:39:30 +08:00 committed by Bryan C. Mills
parent b9dfaf77f5
commit 30002e6656

View File

@ -554,7 +554,7 @@ func checkModulePathLax(p string) error {
// with file systems and subcommands. Disallow file path separators : and \
// because path separators other than / will confuse the module cache.
// See fileNameOK in golang.org/x/mod/module/module.go.
shellChars := "`" + `\"'*<>?|`
shellChars := "`" + `"'*<>?|`
fsChars := `\:`
if i := strings.IndexAny(p, shellChars); i >= 0 {
return errorf("contains disallowed shell character %q", p[i])