Update #25234
Fixes #35083
Change-Id: Ida39516ab1c14a34a62c2232476a75e83f4e3f75
Reviewed-on: https://go-review.googlesource.com/c/go/+/202657
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
}
func Clearenv() {
- RawSyscall(SYS_RFORK, RFCENVG, 0, 0)
+ // Creating a new environment group using rfork(RFCENVG) can race
+ // with access to files in /env (e.g. from Setenv or Getenv).
+ // Remove all environment variables in current environment group instead.
+ fd, err := open("/env", O_RDONLY)
+ if err != nil {
+ return
+ }
+ defer Close(fd)
+ files, err := readdirnames(fd)
+ if err != nil {
+ return
+ }
+ for _, key := range files {
+ Remove("/env/" + key)
+ }
}
func Unsetenv(key string) error {