Since the introduction of automatic immutable from the kernel, the munmap()
authorderaadt <deraadt@openbsd.org>
Mon, 14 Nov 2022 13:13:19 +0000 (13:13 +0000)
committerderaadt <deraadt@openbsd.org>
Mon, 14 Nov 2022 13:13:19 +0000 (13:13 +0000)
commitb3a51cd353f213c99c475c8fac4f7526925f5949
tree3cf451dc54aa67f125f18758327e1eb341088d10
parente201c79b92ba0b20b8a77f040ae649ec8fe0b8b5
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 powerpc64 and a modified version of the diff deraadt@ mailed
out to make sure the LOADs are in increasing address order.
this is the version for sparc64, tested by pascal also
libexec/ld.so/sparc64/ld.script