On machines lacking xonly support hardware, we emulate xonly in the
authorderaadt <deraadt@openbsd.org>
Fri, 5 Apr 2024 12:58:49 +0000 (12:58 +0000)
committerderaadt <deraadt@openbsd.org>
Fri, 5 Apr 2024 12:58:49 +0000 (12:58 +0000)
commitcd43dcb5b90fdb46896cd582869bd2c1381d8b99
treeb374e43a9167278014c3fbdb65535f271f6d0852
parent91838816c6f7782776eaab516534fac34fa0203c
On machines lacking xonly support hardware, we emulate xonly in the
copyin(9) layer below system calls, using a 4-entry lookup; the 4th
entry is libc.so text. We were assuming, or rather insisting, that
on all our architectures libc.so text is treated as xonly, even if
the linker was behind in it's game.
Since msyscall(2) is gone, kernel no longer has information about the
start,len of libc.so text segment.  But we can instead use the (same)
start,len range of pinsyscalls() instead for this purpose.
ld.so is passing the same text-range to the kernel in this position.
regression tests run by anton discovered that libc.so text had become
copyin-readable.
ok kettenis
sys/uvm/uvm_mmap.c