diff options
author | Bryan C. Mills <bcmills@google.com> | 2019-05-13 11:38:47 -0400 |
---|---|---|
committer | Bryan C. Mills <bcmills@google.com> | 2019-05-14 14:29:49 +0000 |
commit | 9892cd634dbb829a9806f3dacf8f13cfe1b18d4c (patch) | |
tree | 82dc0c3f1ee8ad7e3f294604fd32aaf754477b21 /src/cmd/go/internal/modload/query.go | |
parent | 5b4ea626e00e998eb9c72b9d80f1c167e72da569 (diff) | |
download | go-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.go | 4 |
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 { |