...to avoid conflicts with the predeclared close function.
Change-Id: If6a19a004c390f4e0795ec207c72caa79a7281f4
Reviewed-on: https://go-review.googlesource.com/c/go/+/421934
Run-TryBot: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
// like close, but must not split stack, for fork.
//
-//go:linkname syscall_close syscall.close
+//go:linkname syscall_closeFD syscall.closeFD
//go:nosplit
-func syscall_close(fd int32) int32 {
+func syscall_closeFD(fd int32) int32 {
_, err := syscall1(&libc_close, uintptr(fd))
return int32(err)
}
TEXT ·chroot1(SB),NOSPLIT,$0
JMP runtime·syscall_chroot(SB)
-TEXT ·close(SB),NOSPLIT,$0
+TEXT ·closeFD(SB),NOSPLIT,$0
JMP runtime·syscall_close(SB)
TEXT ·dup2child(SB),NOSPLIT,$0
func chdir(path uintptr) (err Errno)
func chroot1(path uintptr) (err Errno)
-func close(fd uintptr) (err Errno)
+func closeFD(fd uintptr) (err Errno)
func dup2child(old uintptr, new uintptr) (val uintptr, err Errno)
func execve(path uintptr, argv uintptr, envp uintptr) (err Errno)
func exit(code uintptr)
// Pass 2: dup fd[i] down onto i.
for i = 0; i < len(fd); i++ {
if fd[i] == -1 {
- close(uintptr(i))
+ closeFD(uintptr(i))
continue
}
if fd[i] == int(i) {
// Programs that know they inherit fds >= 3 will need
// to set them close-on-exec.
for i = len(fd); i < 3; i++ {
- close(uintptr(i))
+ closeFD(uintptr(i))
}
// Detach fd 0 from tty