Since the signal trampoline is now execute-only we no longer write it
authorkettenis <kettenis@openbsd.org>
Fri, 13 Jan 2023 23:02:43 +0000 (23:02 +0000)
committerkettenis <kettenis@openbsd.org>
Fri, 13 Jan 2023 23:02:43 +0000 (23:02 +0000)
commit13f0bae737815c2bc645da585a42c3d9a6f218f2
treed0f8248185fe17c5376ebcf5166b2917d35a1d82
parent76b90a235db8507caf13e11c11faa05e2ce6a34b
Since the signal trampoline is now execute-only we no longer write it
into core dumps.  As a result backtraces through signal handlers no
longer work in gdb and other debuggers.

Fix this by keeping a read-only mapping of the signal trampoline in the
kernel and writing it into the core dump at the virtual address where it
is mapped in the process.

ok deraadt@, tb@
sys/kern/exec_elf.c
sys/kern/kern_exec.c
sys/uvm/uvm_unix.c