mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
syscall: workaround Dragonfly BSD kernel exec bug
See also CL 4259056 for FreeBSD.
Test program:
// exec.go
package main
import (
"log"
"os"
"os/exec"
"runtime"
)
func main() {
path := runtime.GOROOT() + "/src/pkg/net/http/cgi/testdata"
cmd := &exec.Cmd{
Path: "test.cgi",
Args: []string{path + "/test.cgi"},
Dir: path
Stdout: os.Stdout}
if err := cmd.Start(); err != nil {
log.Fatal(err)
}
if err := cmd.Wait(); err != nil {
log.Fatal(err)
}
}
$ go run exec.go
2014/03/01 15:52:41 fork/exec test.cgi: argument list too long
LGTM=iant
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/69970044
This commit is contained in:
parent
5b456c7488
commit
5fbd6044bc
1 changed files with 1 additions and 1 deletions
|
|
@ -158,7 +158,7 @@ func forkExec(argv0 string, argv []string, attr *ProcAttr) (pid int, err error)
|
|||
return 0, err
|
||||
}
|
||||
|
||||
if runtime.GOOS == "freebsd" && len(argv[0]) > len(argv0) {
|
||||
if (runtime.GOOS == "freebsd" || runtime.GOOS == "dragonfly") && len(argv[0]) > len(argv0) {
|
||||
argvp[0] = argv0p
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue