Rather than marking MAP_STACK on entries for sigaltstack() [2 days ago],
authorderaadt <deraadt@openbsd.org>
Sun, 16 Oct 2022 16:27:02 +0000 (16:27 +0000)
committerderaadt <deraadt@openbsd.org>
Sun, 16 Oct 2022 16:27:02 +0000 (16:27 +0000)
commit39dc533fdf40db727adba3c4aa3c6e88565b3d5b
tree4169071fdb66705edd2fda1ac85cee2630055dce
parent2e53ad5e72f9b36133dfc3c0ca2faa805f0dec1f
Rather than marking MAP_STACK on entries for sigaltstack() [2 days ago],
go back to the old approach: using a new anon mapping because it removes
any potential gadgetry pre-placed in the region (by making it zero).  But
also bring in a few more validation checks beyond contigious mapping -- it
must not be a syscall region, and the protection must be precisely RW.
This does allow sigaltstack() to shoot zero'd MAP_STACK non-immutable regions
into the main stack area (which will soon be immutable).  I am not sure we
can keep reinforce immutable on the region after we do stack (like maybe
determine this while doing the validation entry walk?)
Sadly, continued support for sigaltstack() does require selecting the guessed
best compromise.
ok kettenis
sys/kern/kern_sig.c