os: add check for empty executable path on darwin

os used to panic (access out of bounds) if executablePath was left empty

Fixes #22529

Change-Id: Iead5e60a3b000dbde421a8e8612c3690340879ce
Reviewed-on: https://go-review.googlesource.com/127546
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
Roberto Clapis 2018-08-02 15:27:14 +02:00 committed by Brad Fitzpatrick
parent b3b2f5d9ca
commit faadda040d

View file

@ -4,12 +4,17 @@
package os
import "errors"
var executablePath string // set by ../runtime/os_darwin.go
var initCwd, initCwdErr = Getwd()
func executable() (string, error) {
ep := executablePath
if len(ep) == 0 {
return ep, errors.New("cannot find executable path")
}
if ep[0] != '/' {
if initCwdErr != nil {
return ep, initCwdErr