]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: parse dot-separated identifiers in build metadata
authorMichael Ellis <micellis@justin.tv>
Wed, 7 Nov 2018 23:14:20 +0000 (15:14 -0800)
committerBryan C. Mills <bcmills@google.com>
Mon, 19 Nov 2018 20:34:23 +0000 (20:34 +0000)
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 <bcmills@google.com>
src/cmd/go/internal/semver/semver.go
src/cmd/go/internal/semver/semver_test.go

index 4af7118e55d2ef7977266d9561027ca0f9935b02..122e612dd4b8f0b62445a2430f73a04d0c229086 100644 (file)
@@ -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] == '.' {
index 96b64a58075498a0f9d68d810414addd3f67587e..77025a44abd60a36f8e21eeb000b71f5e8d62409 100644 (file)
@@ -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) {