]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go/internal/module: fix validation for module paths ending with /v
authorBryan C. Mills <bcmills@google.com>
Wed, 5 Dec 2018 15:20:24 +0000 (10:20 -0500)
committerBryan C. Mills <bcmills@google.com>
Thu, 6 Dec 2018 20:13:22 +0000 (20:13 +0000)
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 <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
src/cmd/go/internal/module/module.go
src/cmd/go/internal/module/module_test.go

index 1dbb0f5cb7996ccf530332d6f20fdc26509f9690..8afd2739b86b1fdd9e81a6ba95f653e6168c5b60 100644 (file)
@@ -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:]
index f21d620d328f8bf4425542a672494f2eb32ec301..b40bd03dfa65bc679c3f9044b4ca723a57da98d2 100644 (file)
@@ -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"},