src/os: make Environ() return a copy of the environment

Fixes #2646
Этот коммит содержится в:
Damian Gryski 2022-02-22 11:07:05 -08:00 коммит произвёл Ayke
родитель d65e3deccf
коммит 08fd49fe60

Просмотреть файл

@ -8,6 +8,7 @@ package os
import (
"internal/testlog"
"strings"
"syscall"
)
@ -137,5 +138,13 @@ func Clearenv() {
// Environ returns a copy of strings representing the environment,
// in the form "key=value".
func Environ() []string {
return syscall.Environ()
orig := syscall.Environ()
single := strings.Join(orig, "")
env := make([]string, len(orig))
for i, v := range orig {
s := single[:len(v)]
env[i] = s
single = single[len(v):]
}
return env
}