From 20d9cc4bb0dceed4d06338e69b7eea5287650fc7 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Mon, 1 Sep 2014 23:03:26 -0400 Subject: [PATCH] runtime: fix gogetenv on Plan 9 LGTM=rsc R=rsc, ality CC=golang-codereviews https://golang.org/cl/137030043 --- src/pkg/runtime/env_plan9.go | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/src/pkg/runtime/env_plan9.go b/src/pkg/runtime/env_plan9.go index 85c1c856b0..b6dcb4c1ea 100644 --- a/src/pkg/runtime/env_plan9.go +++ b/src/pkg/runtime/env_plan9.go @@ -30,21 +30,11 @@ func gogetenv(key string) string { if fd < 0 { return "" } - n := seek(fd, 0, 2) - - var p unsafe.Pointer - - // Be sure not to allocate for $GOTRACEBACK. - if key == "GOTRACEBACK" { - if n >= 128 { - return "" - } - p = unsafe.Pointer(&tracebackbuf[0]) - } else { - p = gomallocgc(uintptr(n+1), nil, 0) - } + n := seek(fd, 0, 2) - 1 + + p := make([]byte, n) - r := pread(fd, p, int32(n), 0) + r := pread(fd, unsafe.Pointer(&p[0]), int32(n), 0) close(fd) if r < 0 { return "" @@ -52,7 +42,7 @@ func gogetenv(key string) string { var s string sp := (*_string)(unsafe.Pointer(&s)) - sp.str = (*byte)(p) + sp.str = &p[0] sp.len = int(r) return s } -- 2.48.1