summaryrefslogtreecommitdiffhomepage
path: root/runsc/sandbox
diff options
context:
space:
mode:
authorNicolas Lacasse <nlacasse@google.com>2019-06-26 11:26:18 -0700
committergVisor bot <gvisor-bot@google.com>2019-06-26 11:27:31 -0700
commit67e2f227aac49129936efc640a6c47a0978b187d (patch)
treec41ee03a485e76d74c6cd26598316e9f53899589 /runsc/sandbox
parente98ce4a2c681855b6b4f2c1298484f60014e4b88 (diff)
Always set SysProcAttr.Ctty to an FD in the child's FD table.
Go was going to change the behavior of SysProcAttr.Ctty such that it must be an FD in the *parent* FD table: https://go-review.googlesource.com/c/go/+/178919/ However, after some debate, it was decided that this change was too backwards-incompatible, and so it was reverted. https://github.com/golang/go/issues/29458 The behavior going forward is unchanged: the Ctty FD must be an FD in the *child* FD table. PiperOrigin-RevId: 255228476
Diffstat (limited to 'runsc/sandbox')
-rw-r--r--runsc/sandbox/sandbox.go13
1 files changed, 4 insertions, 9 deletions
diff --git a/runsc/sandbox/sandbox.go b/runsc/sandbox/sandbox.go
index 1591052cd..6bebf0737 100644
--- a/runsc/sandbox/sandbox.go
+++ b/runsc/sandbox/sandbox.go
@@ -438,15 +438,10 @@ func (s *Sandbox) createSandboxProcess(conf *boot.Config, args *Args, startSyncF
// Set the TTY as a controlling TTY on the sandbox process.
cmd.SysProcAttr.Setctty = true
- cmd.SysProcAttr.Ctty = int(tty.Fd())
- // TODO(b/133868570): Delete this check once Go 1.12 is no
- // longer supported.
- if console.CttyFdIsPostShuffle {
- // In go1.12 and before, the Ctty FD must be the FD in
- // the child process's FD table, which will be "nextFD"
- // in this case.
- cmd.SysProcAttr.Ctty = nextFD
- }
+ // The Ctty FD must be the FD in the child process's FD table,
+ // which will be nextFD in this case.
+ // See https://github.com/golang/go/issues/29458.
+ cmd.SysProcAttr.Ctty = nextFD
// Pass the tty as all stdio fds to sandbox.
for i := 0; i < 3; i++ {