When terminating via pledge_fail() stop all threads, before issuing a
authorderaadt <deraadt@openbsd.org>
Fri, 30 Apr 2021 02:06:22 +0000 (02:06 +0000)
committerderaadt <deraadt@openbsd.org>
Fri, 30 Apr 2021 02:06:22 +0000 (02:06 +0000)
commiteb0deef5d2617e5dde4b3ef3e3c4791339e6e5ef
tree5ebb0c1db2af9dd061f7001477ae67e53cc3ed48
parent8ff8b8d9b89466c8a9411414b0f03f2638b18809
When terminating via pledge_fail() stop all threads, before issuing a
(delayed action) sigabort() and disabling all syscalls for this process
(ie. all threads).  This resulted in multiple-threads crashing over top
of themselves, and a poor debugging experience.  We keep using sigabort()
rather than sigexit(), to keep the debugging process good.
Diagnosed from a report from brynet, and followup discussion with many.
sys/kern/kern_pledge.c