summaryrefslogtreecommitdiff
path: root/src/pkg
diff options
context:
space:
mode:
authorDavid du Colombier <0intro@gmail.com>2014-09-01 23:03:26 -0400
committerDavid du Colombier <0intro@gmail.com>2014-09-01 23:03:26 -0400
commitc7b98dd157957937ede80f8ee5a9baf4c48e9cb7 (patch)
tree0730dca024bcb18f78b6bbc66e26343cbe43e143 /src/pkg
parent4cac824813e6aea02378b1ab11ce3cb5a07070e4 (diff)
downloadgo-c7b98dd157957937ede80f8ee5a9baf4c48e9cb7.tar.gz
runtime: fix gogetenv on Plan 9
LGTM=rsc R=rsc, ality CC=golang-codereviews https://codereview.appspot.com/137030043 Committer: Russ Cox <rsc@golang.org>
Diffstat (limited to 'src/pkg')
-rw-r--r--src/pkg/runtime/env_plan9.go20
1 files changed, 5 insertions, 15 deletions
diff --git a/src/pkg/runtime/env_plan9.go b/src/pkg/runtime/env_plan9.go
index 85c1c856b..b6dcb4c1e 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
}