From: Bryan C. Mills Date: Wed, 5 Dec 2018 15:20:24 +0000 (-0500) Subject: cmd/go/internal/module: fix validation for module paths ending with /v X-Git-Tag: go1.12beta1~145 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=5b48ab8881928e7a23678b93836e32f961a9dddb;p=gostls13.git cmd/go/internal/module: fix validation for module paths ending with /v Unlike "/v1", "/v" is not likely to be mistaken for a semantic import path. Change-Id: I024647d78c79c7761b98ddeccdc7e259ca94b568 Reviewed-on: https://go-review.googlesource.com/c/152738 Run-TryBot: Bryan C. Mills TryBot-Result: Gobot Gobot Reviewed-by: Russ Cox --- diff --git a/src/cmd/go/internal/module/module.go b/src/cmd/go/internal/module/module.go index 1dbb0f5cb7..8afd2739b8 100644 --- a/src/cmd/go/internal/module/module.go +++ b/src/cmd/go/internal/module/module.go @@ -284,7 +284,7 @@ func SplitPathVersion(path string) (prefix, pathMajor string, ok bool) { } i-- } - if i <= 1 || path[i-1] != 'v' || path[i-2] != '/' { + if i <= 1 || i == len(path) || path[i-1] != 'v' || path[i-2] != '/' { return path, "", true } prefix, pathMajor = path[:i-2], path[i-2:] diff --git a/src/cmd/go/internal/module/module_test.go b/src/cmd/go/internal/module/module_test.go index f21d620d32..b40bd03dfa 100644 --- a/src/cmd/go/internal/module/module_test.go +++ b/src/cmd/go/internal/module/module_test.go @@ -214,6 +214,7 @@ var splitPathVersionTests = []struct { {"x.y/z", ""}, {"x.y/z", "/v2"}, {"x.y/z", "/v3"}, + {"x.y/v", ""}, {"gopkg.in/yaml", ".v0"}, {"gopkg.in/yaml", ".v1"}, {"gopkg.in/yaml", ".v2"},