mirror of
https://github.com/golang/go
synced 2024-11-23 10:40:08 -07:00
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 <mdempsky@google.com>
This commit is contained in:
parent
831e3cfaa5
commit
52e5987f5d
@ -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
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user