From 5b48ab8881928e7a23678b93836e32f961a9dddb Mon Sep 17 00:00:00 2001 From: "Bryan C. Mills" Date: Wed, 5 Dec 2018 10:20:24 -0500 Subject: [PATCH] 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 --- src/cmd/go/internal/module/module.go | 2 +- src/cmd/go/internal/module/module_test.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) 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"}, -- 2.50.0