aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/internal/modload/query.go
diff options
context:
space:
mode:
authorBryan C. Mills <bcmills@google.com>2019-05-13 11:38:47 -0400
committerBryan C. Mills <bcmills@google.com>2019-05-14 14:29:49 +0000
commit9892cd634dbb829a9806f3dacf8f13cfe1b18d4c (patch)
tree82dc0c3f1ee8ad7e3f294604fd32aaf754477b21 /src/cmd/go/internal/modload/query.go
parent5b4ea626e00e998eb9c72b9d80f1c167e72da569 (diff)
downloadgo-9892cd634dbb829a9806f3dacf8f13cfe1b18d4c.tar.gz
go-9892cd634dbb829a9806f3dacf8f13cfe1b18d4c.zip
cmd/go: do not allow version prefixes to match prereleases of that version
Fixes #31972 Change-Id: I3bb9ef3a1134e67d2d062bea2f0e4032647e12e6 Reviewed-on: https://go-review.googlesource.com/c/go/+/176898 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/cmd/go/internal/modload/query.go')
-rw-r--r--src/cmd/go/internal/modload/query.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/cmd/go/internal/modload/query.go b/src/cmd/go/internal/modload/query.go
index a195b76fa1..cd0d9b17c5 100644
--- a/src/cmd/go/internal/modload/query.go
+++ b/src/cmd/go/internal/modload/query.go
@@ -186,7 +186,7 @@ func Query(path, query string, allowed func(module.Version) bool) (*modfetch.Rev
return nil, &NoMatchingVersionError{query: query}
}
-// isSemverPrefix reports whether v is a semantic version prefix: v1 or v1.2 (not wv1.2.3).
+// isSemverPrefix reports whether v is a semantic version prefix: v1 or v1.2 (not v1.2.3).
// The caller is assumed to have checked that semver.IsValid(v) is true.
func isSemverPrefix(v string) bool {
dots := 0
@@ -207,7 +207,7 @@ func isSemverPrefix(v string) bool {
// matchSemverPrefix reports whether the shortened semantic version p
// matches the full-width (non-shortened) semantic version v.
func matchSemverPrefix(p, v string) bool {
- return len(v) > len(p) && v[len(p)] == '.' && v[:len(p)] == p
+ return len(v) > len(p) && v[len(p)] == '.' && v[:len(p)] == p && semver.Prerelease(v) == ""
}
type QueryResult struct {