Date: Wed, 21 Aug 2002 20:56:58 -0700 (PDT) From: Marcel Moolenaar <marcel@FreeBSD.org> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/libexec/rtld-elf/ia64 reloc.c Message-ID: <200208220356.g7M3uwnQ071600@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
marcel 2002/08/21 20:56:58 PDT Modified files: libexec/rtld-elf/ia64 reloc.c Log: Fix a nasty memory corruption bug caused by having a bogus pointer for the DT_IA64_PLT_RESERVE dynamic table entry. When a shared object does not have any PLT relocations, the linker apparently doesn't find it necessary to actually reserve the space for the BOR (Bind On Reference) entries as pointed to by the DTE. As a result, relocatable data in the PLT was overwritten, causing some unexpected control flow with annoyingly predictable outcome: coredump. To reproduce: % echo 'int main() { return 0; }' > foo.c % cc -o foo foo.c -lxpg4 Revision Changes Path 1.9 +8 -0 src/libexec/rtld-elf/ia64/reloc.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200208220356.g7M3uwnQ071600>