From: Russ Cox Date: Wed, 29 Feb 2012 20:53:57 +0000 (-0500) Subject: os: diagnose chdir error during StartProcess X-Git-Tag: weekly.2012-03-04~80 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=7aba72baaae64792707076724307f6bdc7fec44f;p=gostls13.git os: diagnose chdir error during StartProcess R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/5711044 --- diff --git a/src/pkg/os/exec_posix.go b/src/pkg/os/exec_posix.go index 4a75cb67fb..a686f44606 100644 --- a/src/pkg/os/exec_posix.go +++ b/src/pkg/os/exec_posix.go @@ -18,6 +18,16 @@ import ( // // If there is an error, it will be of type *PathError. func StartProcess(name string, argv []string, attr *ProcAttr) (p *Process, err error) { + // Double-check existence of the directory we want + // to chdir into. We can make the error clearer this way. + if attr != nil && attr.Dir != "" { + if _, err := Stat(attr.Dir); err != nil { + pe := err.(*PathError) + pe.Op = "chdir" + return nil, pe + } + } + sysattr := &syscall.ProcAttr{ Dir: attr.Dir, Env: attr.Env,