summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2017-03-24 07:22:32 +0000
committerkib <kib@FreeBSD.org>2017-03-24 07:22:32 +0000
commitee4124b33f70470844978d1c8e4cd6ae062ebb0a (patch)
treeb617e5ea8e8a669ae5bf1426e6410c6265a94552 /sys/kern
parente50718f4835df8ff791431a25dd78d745d382f8a (diff)
downloadFreeBSD-src-ee4124b33f70470844978d1c8e4cd6ae062ebb0a.zip
FreeBSD-src-ee4124b33f70470844978d1c8e4cd6ae062ebb0a.tar.gz
MFC r315453:
When clearing altsigstack settings on exec, do it to the right thread.
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/kern_sig.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c
index 75121b5..0c6e3af 100644
--- a/sys/kern/kern_sig.c
+++ b/sys/kern/kern_sig.c
@@ -964,7 +964,6 @@ execsigs(struct proc *p)
* and are now ignored by default).
*/
PROC_LOCK_ASSERT(p, MA_OWNED);
- td = FIRST_THREAD_IN_PROC(p);
ps = p->p_sigacts;
mtx_lock(&ps->ps_mtx);
while (SIGNOTEMPTY(ps->ps_sigcatch)) {
@@ -977,6 +976,8 @@ execsigs(struct proc *p)
* Reset stack state to the user stack.
* Clear set of signals caught on the signal stack.
*/
+ td = curthread;
+ MPASS(td->td_proc == p);
td->td_sigstk.ss_flags = SS_DISABLE;
td->td_sigstk.ss_size = 0;
td->td_sigstk.ss_sp = 0;
OpenPOWER on IntegriCloud