Since the introduction of automatic immutable from the kernel, the munmap()
authorderaadt <deraadt@openbsd.org>
Mon, 7 Nov 2022 20:41:38 +0000 (20:41 +0000)
committerderaadt <deraadt@openbsd.org>
Mon, 7 Nov 2022 20:41:38 +0000 (20:41 +0000)
commita5c19628acd4b7d236fcd941d400b465dc027284
tree679007721fdc29f121488fa5ee8d2330f97a3074
parent4303d0d5bc483d585fe1dd208b83fccad8db7c12
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.
Similar changes for other architectures coming after more testing.
ok kettenis and guenther seemed to like it also
libexec/ld.so/aarch64/ld.script
libexec/ld.so/amd64/ld.script