Grab the kernel lock in uvm_wxcheck() when aborting the process
authorkn <kn@openbsd.org>
Wed, 19 Jan 2022 10:43:48 +0000 (10:43 +0000)
committerkn <kn@openbsd.org>
Wed, 19 Jan 2022 10:43:48 +0000 (10:43 +0000)
commitcfa04ad75ce990cccbd6b3681a2344d3ef7ffe71
treeafb9aa0d5ba2e92d99e04777d3cc3f726becc913
parent21c0ccae22a052705745e49c71f7513710df1b34
Grab the kernel lock in uvm_wxcheck() when aborting the process

kern.wxabort=1 logs and kills programs after W^X violations.
At least sigexit() -> coredump() as well as the non-atomic increment of
ps_wxcounter require protection, so grab the big lock for the entire block.

This is part of the effort to unlock mmap(2)'s MAP_ANON case.

Feedback mvs claudio kettenis deraadt
OK kettenis
sys/uvm/uvm_mmap.c