From: David du Colombier <0intro@gmail.com> Date: Mon, 20 Oct 2014 21:03:03 +0000 (+0200) Subject: runtime: handle non-nil-terminated environment strings on Plan 9 X-Git-Tag: go1.4beta1~70 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=9d06cfc810692911372b80b7ef0dc080ee1d34d4;p=gostls13.git runtime: handle non-nil-terminated environment strings on Plan 9 Russ Cox pointed out that environment strings are not required to be nil-terminated on Plan 9. LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/159130044 --- diff --git a/src/runtime/env_plan9.go b/src/runtime/env_plan9.go index 76e9867e03..e442c34835 100644 --- a/src/runtime/env_plan9.go +++ b/src/runtime/env_plan9.go @@ -30,7 +30,7 @@ func gogetenv(key string) string { if fd < 0 { return "" } - n := seek(fd, 0, 2) - 1 + n := seek(fd, 0, 2) if n <= 0 { close(fd) return "" @@ -44,6 +44,10 @@ func gogetenv(key string) string { return "" } + if p[r-1] == 0 { + r-- + } + var s string sp := (*_string)(unsafe.Pointer(&s)) sp.str = &p[0]