Since the introduction of automatic immutable from the kernel, the munmap()
authorderaadt <deraadt@openbsd.org>
Tue, 8 Nov 2022 06:55:53 +0000 (06:55 +0000)
committerderaadt <deraadt@openbsd.org>
Tue, 8 Nov 2022 06:55:53 +0000 (06:55 +0000)
commit59d66fc38050f5ef8d28636c01023b38b7dcfe9f
treec0eacb4ffb8a490363a64d0f5be6a3c58a59c7b2
parent8e29f60aea96ede03ff099c708d8232731befb6d
Since the introduction of automatic immutable from the kernel, the munmap()
of ld.so boot.text region is now (silently) failing because the region is
contained within the text LOAD, which is immutable.  So create a new btext
LOAD with flags PF_X|PF_R|PF_OPENBSD_MUTABLE, and place all boot.text objects
in there.  This LOAD must also be page-aligned so it doesn't skip unmapping
some of the object region, previously it was hilariously unaligned.
ok kettenis and guenther seemed to like it also
This one is for riscv64, tested by jca
libexec/ld.so/riscv64/ld.script