diff options
author | kib <kib@FreeBSD.org> | 2017-03-24 07:22:32 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2017-03-24 07:22:32 +0000 |
commit | ee4124b33f70470844978d1c8e4cd6ae062ebb0a (patch) | |
tree | b617e5ea8e8a669ae5bf1426e6410c6265a94552 /sys/kern | |
parent | e50718f4835df8ff791431a25dd78d745d382f8a (diff) | |
download | FreeBSD-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.c | 3 |
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; |