aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormiller <millerresearch@gmail.com>2022-12-13 10:43:23 +0000
committerGopher Robot <gobot@golang.org>2022-12-13 17:52:02 +0000
commitcb07765045aed5104a3df31507564ac99e6ddce8 (patch)
tree9a0e4642d267ce85566430c261faa032b2030e32
parent5ba98b975638323acf733438a619e9190dfa8afa (diff)
downloadgo-cb07765045aed5104a3df31507564ac99e6ddce8.tar.gz
go-cb07765045aed5104a3df31507564ac99e6ddce8.zip
syscall: fix closing of reordered FDs in plan9 ForkExec
After dup'ing file descriptors in syscall.ProcAttr.Files to pass to the exec'ed process, the logic for closing the old descriptors was incorrect and could close the new descriptor instead. Fixes #57180 Change-Id: I7725f21a465ffba57050fe4e36f3d36ba181cfb2 Reviewed-on: https://go-review.googlesource.com/c/go/+/457115 Run-TryBot: David du Colombier <0intro@gmail.com> TryBot-Result: Gopher Robot <gobot@golang.org> Auto-Submit: Bryan Mills <bcmills@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: David du Colombier <0intro@gmail.com> Reviewed-by: Bryan Mills <bcmills@google.com>
-rw-r--r--src/syscall/exec_plan9.go2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/syscall/exec_plan9.go b/src/syscall/exec_plan9.go
index d6b7890f55..8f28b5aa22 100644
--- a/src/syscall/exec_plan9.go
+++ b/src/syscall/exec_plan9.go
@@ -276,7 +276,7 @@ dirloop:
// Pass 3: close fd[i] if it was moved in the previous pass.
for i = 0; i < len(fd); i++ {
- if fd[i] >= 0 && fd[i] != int(i) {
+ if fd[i] >= len(fd) {
RawSyscall(SYS_CLOSE, uintptr(fd[i]), 0, 0)
}
}