diff options
| author | Ian Lance Taylor <iant@golang.org> | 2021-04-26 17:27:58 -0700 |
|---|---|---|
| committer | Ian Lance Taylor <iant@golang.org> | 2021-04-27 13:50:09 +0000 |
| commit | 7d22c2181b4343b58e40962cefd52af1284b4294 (patch) | |
| tree | d8e975ccc9e6b025930e8ce173654e65774eb824 /src/syscall/exec_linux.go | |
| parent | 39844971fb92992305babb4b64d50faa7fea40a0 (diff) | |
| download | go-7d22c2181b4343b58e40962cefd52af1284b4294.tar.xz | |
syscall: restore signal mask after setting foreground process group
Fixes #37217
Change-Id: I0151bb77fc4c4552d1b19c31d784943b72f84b80
Reviewed-on: https://go-review.googlesource.com/c/go/+/313653
Trust: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Diffstat (limited to 'src/syscall/exec_linux.go')
| -rw-r--r-- | src/syscall/exec_linux.go | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/syscall/exec_linux.go b/src/syscall/exec_linux.go index deb8aa38b7..ccc0e39e30 100644 --- a/src/syscall/exec_linux.go +++ b/src/syscall/exec_linux.go @@ -233,8 +233,6 @@ func forkAndExecInChild1(argv0 *byte, argv, envv []*byte, chroot, dir *byte, att // Fork succeeded, now in child. - runtime_AfterForkInChild() - // Enable the "keep capabilities" flag to set ambient capabilities later. if len(sys.AmbientCaps) > 0 { _, _, err1 = RawSyscall6(SYS_PRCTL, PR_SET_KEEPCAPS, 1, 0, 0, 0, 0) @@ -294,6 +292,10 @@ func forkAndExecInChild1(argv0 *byte, argv, envv []*byte, chroot, dir *byte, att } } + // Restore the signal mask. We do this after TIOCSPGRP to avoid + // having the kernel send a SIGTTOU signal to the process group. + runtime_AfterForkInChild() + // Unshare if sys.Unshareflags != 0 { _, _, err1 = RawSyscall(SYS_UNSHARE, sys.Unshareflags, 0, 0) |
