From: Brad Fitzpatrick Date: Wed, 13 May 2015 22:28:11 +0000 (-0700) Subject: cmd/internal/obj: validate GOARM environment variable's value before use X-Git-Tag: go1.5beta1~605 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=5c7f94421ef5eca55b37f778b427abd5ea174c26;p=gostls13.git cmd/internal/obj: validate GOARM environment variable's value before use I was previously setting GOARM=arm5 (due to confusion with previously seeing buildall.sh's temporary of "arm5" as a GOARCH and misremembernig), but GOARM=arm5 was acting like GOARM=5 only on accident. See https://go-review.googlesource.com/#/c/10023/ Instead, fail if GOARM is not a known value. Change-Id: I9ba4fd7268df233d40b09f0431f37cd85a049847 Reviewed-on: https://go-review.googlesource.com/10024 Reviewed-by: Minux Ma --- diff --git a/src/cmd/internal/obj/util.go b/src/cmd/internal/obj/util.go index b0b209184f..ac49543fdf 100644 --- a/src/cmd/internal/obj/util.go +++ b/src/cmd/internal/obj/util.go @@ -213,10 +213,17 @@ func Getgoos() string { } func Getgoarm() string { - return envOr("GOARM", defaultGOARM) + switch v := envOr("GOARM", defaultGOARM); v { + case "5", "6", "7": + return v + } + // Fail here, rather than validate at multiple call sites. + log.Fatalf("Invalid GOARM value. Must be 5, 6, or 7.") + panic("unreachable") } func Getgo386() string { + // Validated by cmd/8g. return envOr("GO386", defaultGO386) }