Static non-PIE binaries always have a base address of 0 (even if the ELF
authorkettenis <kettenis@openbsd.org>
Sun, 21 Jan 2024 17:18:13 +0000 (17:18 +0000)
committerkettenis <kettenis@openbsd.org>
Sun, 21 Jan 2024 17:18:13 +0000 (17:18 +0000)
commit51689999131972de3737a6cebfc77b68f9a299e7
tree5dd4cb65a16fff38ff33dbee5b22173865bebe93
parent9b656d3e3975198e1048fd6d522c5dd1e7e978d1
Static non-PIE binaries always have a base address of 0 (even if the ELF
headers start at a higher address).  Using the wrong base address meant
that we were protecting the wrong address range for the malloc internals
which made the code error out now that mimmutable(2) no longer allows an
RW->R transition.  Issue found by gkoehler@ who got most of the way
towards a proper fix.

ok deraadt@
lib/libc/dlfcn/init.c