68f14f0597
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 |
||
---|---|---|
.. | ||
alpha | ||
amd64 | ||
i386 | ||
ia64 | ||
sparc64 | ||
debug.c | ||
debug.h | ||
Makefile | ||
malloc.c | ||
map_object.c | ||
rtld.1 | ||
rtld.c | ||
rtld.h | ||
xmalloc.c |