runtime: fix gogetenv on Plan 9

LGTM=rsc
R=rsc, ality
CC=golang-codereviews
https://golang.org/cl/137030043
diff --git a/src/pkg/runtime/env_plan9.go b/src/pkg/runtime/env_plan9.go
index 85c1c85..b6dcb4c 100644
--- a/src/pkg/runtime/env_plan9.go
+++ b/src/pkg/runtime/env_plan9.go
@@ -30,21 +30,11 @@
 	if fd < 0 {
 		return ""
 	}
-	n := seek(fd, 0, 2)
+	n := seek(fd, 0, 2) - 1
 
-	var p unsafe.Pointer
+	p := make([]byte, n)
 
-	// 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)
-	}
-
-	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 @@
 
 	var s string
 	sp := (*_string)(unsafe.Pointer(&s))
-	sp.str = (*byte)(p)
+	sp.str = &p[0]
 	sp.len = int(r)
 	return s
 }