From: Ian Lance Taylor Date: Tue, 15 Oct 2019 14:52:23 +0000 (-0700) Subject: os: keep attr.Files alive when calling StartProcess X-Git-Tag: go1.14beta1~737 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=52e5987f5d92f707411359d9f56cb0cec97ac167;p=gostls13.git os: keep attr.Files alive when calling StartProcess Updates #34810 Fixes #34858 Change-Id: Ie934861e51eeafe8a7fd6653c4223a5f5d45efe8 Reviewed-on: https://go-review.googlesource.com/c/go/+/201198 Reviewed-by: Matthew Dempsky --- diff --git a/src/os/exec_posix.go b/src/os/exec_posix.go index f6c7a49c1b..95ccc246a8 100644 --- a/src/os/exec_posix.go +++ b/src/os/exec_posix.go @@ -7,6 +7,7 @@ package os import ( + "runtime" "syscall" ) @@ -49,9 +50,14 @@ func startProcess(name string, argv []string, attr *ProcAttr) (p *Process, err e } pid, h, e := syscall.StartProcess(name, argv, sysattr) + + // Make sure we don't run the finalizers of attr.Files. + runtime.KeepAlive(attr) + if e != nil { return nil, &PathError{"fork/exec", name, e} } + return newProcess(pid, h), nil }