From: Michael Ellis Date: Wed, 7 Nov 2018 23:14:20 +0000 (-0800) Subject: cmd/go: parse dot-separated identifiers in build metadata X-Git-Tag: go1.12beta1~310 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=dcb1363a1fc3e02085f17533052dfab35e426143;p=gostls13.git cmd/go: parse dot-separated identifiers in build metadata Per https://semver.org/#spec-item-10, build metadata may include a series of dot separated identifiers. Fixes #28647 Change-Id: I98655c62584a822953df71fba32b4a2cafe7a04b Reviewed-on: https://go-review.googlesource.com/c/148835 Reviewed-by: Bryan C. Mills --- diff --git a/src/cmd/go/internal/semver/semver.go b/src/cmd/go/internal/semver/semver.go index 4af7118e55..122e612dd4 100644 --- a/src/cmd/go/internal/semver/semver.go +++ b/src/cmd/go/internal/semver/semver.go @@ -263,7 +263,7 @@ func parseBuild(v string) (t, rest string, ok bool) { i := 1 start := 1 for i < len(v) { - if !isIdentChar(v[i]) { + if !isIdentChar(v[i]) && v[i] != '.' { return } if v[i] == '.' { diff --git a/src/cmd/go/internal/semver/semver_test.go b/src/cmd/go/internal/semver/semver_test.go index 96b64a5807..77025a44ab 100644 --- a/src/cmd/go/internal/semver/semver_test.go +++ b/src/cmd/go/internal/semver/semver_test.go @@ -44,6 +44,7 @@ var tests = []struct { {"v1.2.3", "v1.2.3"}, {"v1.2.3+meta", "v1.2.3"}, {"v1.2.3+meta-pre", "v1.2.3"}, + {"v1.2.3+meta-pre.sha.256a", "v1.2.3"}, } func TestIsValid(t *testing.T) {