CVSROOT:        /cvs
Module name:    src
Changes by:     m...@cvs.openbsd.org    2014/11/25 13:26:13

Modified files:
        libexec/ld.so/m88k: rtld_machine.c 

Log message:
When a public symbol in a library is referenced by the main program's plt,
the address of the symbol must always resolve to the entry in the main
program's plt, regardless of which object the address resolution is performed
for, so that addresses (pointers) can be compared reliably.

However, depending on how far away library load address randomization places
the library, the main program's plt address might be too far away from the
library itself for its DISP26 relocations to fit in the required relative
displacement range.

Since DISP26 relocations can only be used in code for branches, it is safe
to resolve them to the actual address within the library, and avoid producing
out of bounds displacements.

Reply via email to