Commit eeb8d00c authored by Devon H. O'Dell's avatar Devon H. O'Dell Committed by Russ Cox

syscall: work around FreeBSD execve kernel bug

FreeBSD's execve implementation has an integer underflow in a bounds test which
causes it to erroneously think the argument list is too long when argv[0] is
longer than interpreter + path.

R=rsc, bradfitz, rsc1
CC=golang-dev
https://golang.org/cl/4259056
parent 9e25eccf
......@@ -238,6 +238,10 @@ func forkExec(argv0 string, argv []string, envv []string, traceme bool, dir stri
dirp = StringBytePtr(dir)
}
if OS == "freebsd" && len(argv[0]) > len(argv0) {
argvp[0] = argv0p
}
// Acquire the fork lock so that no other threads
// create new fds that are not yet close-on-exec
// before we fork.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment