diff options
| author | Julio Montes <julio.montes@intel.com> | 2017-05-22 10:33:31 -0500 |
|---|---|---|
| committer | Ian Lance Taylor <iant@golang.org> | 2017-05-31 03:49:48 +0000 |
| commit | 673fdea5e798baa98c418cba86cf50c8d80cbc36 (patch) | |
| tree | ec3eaf59314cfd07d7b7c3341daadf220a1ea470 /src/syscall/exec_linux.go | |
| parent | c6e7cb4a375966f7b034e6dbf439a58ea326104a (diff) | |
| download | go-673fdea5e798baa98c418cba86cf50c8d80cbc36.tar.xz | |
syscall: allow processes steal a controlling terminal on Linux
The current implementation of forkAndExecInChild for Linux does not allow
spawned processes steal the controlling terminal from a different session
group. This patch passes 1 as the argument to TIOCSCTTY in order to allow
spawned processes steal controlling terminals.
Fixes #20454
Change-Id: I171b8981509d648b07f89bddc1e9d45cb70e00e6
Reviewed-on: https://go-review.googlesource.com/44343
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/syscall/exec_linux.go')
| -rw-r--r-- | src/syscall/exec_linux.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/syscall/exec_linux.go b/src/syscall/exec_linux.go index 66fb0356ba..5f53eaaa36 100644 --- a/src/syscall/exec_linux.go +++ b/src/syscall/exec_linux.go @@ -342,7 +342,7 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr // Set the controlling TTY to Ctty if sys.Setctty { - _, _, err1 = RawSyscall(SYS_IOCTL, uintptr(sys.Ctty), uintptr(TIOCSCTTY), 0) + _, _, err1 = RawSyscall(SYS_IOCTL, uintptr(sys.Ctty), uintptr(TIOCSCTTY), 1) if err1 != 0 { goto childerror } |
