summaryrefslogtreecommitdiff
path: root/src/syscall/syscall_openbsd_libc.go
diff options
context:
space:
mode:
authorTobias Klauser <tklauser@distanz.ch>2022-03-04 09:49:32 +0100
committerTobias Klauser <tobias.klauser@gmail.com>2022-03-05 08:36:13 +0000
commit55a60cadc3f5d01f76ac9435da2ed941e194a29b (patch)
tree9867ff3e90013113d6ed05b0c58cf1e92be365e4 /src/syscall/syscall_openbsd_libc.go
parentbf97c99b62fe7d6652cc8c807dbc91998d488a01 (diff)
downloadgo-git-55a60cadc3f5d01f76ac9435da2ed941e194a29b.tar.gz
syscall: use dup3 in forkAndExecInChild on OpenBSD
Use dup3(oldfd, newfd, O_CLOEXEC) to atomically duplicate the file descriptor and mark is as close-on-exec instead of dup2 & fcntl. The dup3 system call first appeared in OpenBSD 5.7. Change-Id: Ic06c2c7089dcdbd931ee24e5e8c316879d81474e Reviewed-on: https://go-review.googlesource.com/c/go/+/389974 Trust: Tobias Klauser <tobias.klauser@gmail.com> Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/syscall/syscall_openbsd_libc.go')
-rw-r--r--src/syscall/syscall_openbsd_libc.go2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/syscall/syscall_openbsd_libc.go b/src/syscall/syscall_openbsd_libc.go
index 15b68fd0fc..516d02975c 100644
--- a/src/syscall/syscall_openbsd_libc.go
+++ b/src/syscall/syscall_openbsd_libc.go
@@ -10,6 +10,8 @@ import (
"internal/abi"
)
+var dupTrampoline = abi.FuncPCABI0(libc_dup3_trampoline)
+
func init() {
execveOpenBSD = execve
}