diff options
author | 2019-05-13 19:21:31 +0000 | |
---|---|---|
committer | 2019-05-13 19:21:31 +0000 | |
commit | 788422d65be41111bc05f25ec194535e3ae7eb6c (patch) | |
tree | 2a0e4cfda82fe14e76fd02a67a366b04f0eddc90 /sys/kern/exec_elf.c | |
parent | Do not check for IFF_RUNNING inside bstp_initialization(). (diff) | |
download | wireguard-openbsd-788422d65be41111bc05f25ec194535e3ae7eb6c.tar.xz wireguard-openbsd-788422d65be41111bc05f25ec194535e3ae7eb6c.zip |
When killing a process, the signal is handled by any thread that
does not block the signal. If all threads block the signal, we
delivered it to the main thread. This does not conform to POSIX.
If any thread unblocks the signal, it should be delivered immediately
to this thread.
Mark such signals pending at the process instead of a single thread.
Then any thread can handle it later.
OK kettenis@ guenther@
Diffstat (limited to 'sys/kern/exec_elf.c')
-rw-r--r-- | sys/kern/exec_elf.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/exec_elf.c b/sys/kern/exec_elf.c index 9d5639a24a7..24adf0dbed6 100644 --- a/sys/kern/exec_elf.c +++ b/sys/kern/exec_elf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: exec_elf.c,v 1.150 2019/05/11 19:59:26 deraadt Exp $ */ +/* $OpenBSD: exec_elf.c,v 1.151 2019/05/13 19:21:31 bluhm Exp $ */ /* * Copyright (c) 1996 Per Fogelstrom @@ -1211,7 +1211,7 @@ coredump_notes_elf(struct proc *p, void *iocookie, size_t *sizep) cpi.cpi_signo = p->p_sisig; cpi.cpi_sigcode = p->p_sicode; - cpi.cpi_sigpend = p->p_siglist; + cpi.cpi_sigpend = p->p_siglist | pr->ps_siglist; cpi.cpi_sigmask = p->p_sigmask; cpi.cpi_sigignore = pr->ps_sigacts->ps_sigignore; cpi.cpi_sigcatch = pr->ps_sigacts->ps_sigcatch; |