CVSROOT: /cvs Module name: src Changes by: guent...@cvs.openbsd.org 2014/11/03 10:50:56
Modified files: libexec/ld.so : loader.c libexec/ld.so/alpha: archdep.h libexec/ld.so/powerpc: archdep.h libexec/ld.so/sparc: archdep.h libexec/ld.so/sparc64: archdep.h Log message: Eliminate RTLD_PROTECT_PLT: ld.so is built with -Bsymbolic so the PLT is empty/unused. On at least macppc and sparc64, ld.so's attempt to mprotect its PLT could instead hit its own allocated data and cause a segfault shortly there after. While here, take a shot at preventing the same issue with the GOT by checking for __got_start != __got_end. reproduction *with ktracing* by afresh1@ provided the key data ok miod@ deraadt@