mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
os/exec: don't crash when out of fds
Command.Start could crash before if no fds were available because a nil *os.File of /dev/null was added to the cleanup list, which crashed before returning the proper error. R=golang-dev, iant CC=golang-dev https://golang.org/cl/6514043
This commit is contained in:
parent
cc06593c68
commit
5c5c2c8112
1 changed files with 6 additions and 0 deletions
|
|
@ -143,6 +143,9 @@ func (c *Cmd) argv() []string {
|
|||
func (c *Cmd) stdin() (f *os.File, err error) {
|
||||
if c.Stdin == nil {
|
||||
f, err = os.Open(os.DevNull)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
c.closeAfterStart = append(c.closeAfterStart, f)
|
||||
return
|
||||
}
|
||||
|
|
@ -182,6 +185,9 @@ func (c *Cmd) stderr() (f *os.File, err error) {
|
|||
func (c *Cmd) writerDescriptor(w io.Writer) (f *os.File, err error) {
|
||||
if w == nil {
|
||||
f, err = os.OpenFile(os.DevNull, os.O_WRONLY, 0)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
c.closeAfterStart = append(c.closeAfterStart, f)
|
||||
return
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue