From 4ba17d5097640caadbbe8df5663ce6d681359b49 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Sat, 22 Sep 2012 05:55:12 +1000 Subject: [PATCH] [release-branch.go1] os/exec: don't crash when out of fds MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit ««« backport 00e1feaa9218 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 »»» --- src/pkg/os/exec/exec.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/pkg/os/exec/exec.go b/src/pkg/os/exec/exec.go index 3db3ab095d..c4907cd7d7 100644 --- a/src/pkg/os/exec/exec.go +++ b/src/pkg/os/exec/exec.go @@ -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 } -- 2.50.0