From 30002e665658b4b2c147caaee6bf7734042952e8 Mon Sep 17 00:00:00 2001 From: SataQiu Date: Thu, 15 Apr 2021 23:39:30 +0800 Subject: [PATCH] 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 Trust: Robert Findley --- src/cmd/go/internal/modload/init.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cmd/go/internal/modload/init.go b/src/cmd/go/internal/modload/init.go index 4d240a7b64..3c7db6c8a7 100644 --- a/src/cmd/go/internal/modload/init.go +++ b/src/cmd/go/internal/modload/init.go @@ -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]) -- 2.50.0