[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: RFC: Audit external function called indirectly via GOT

On Thu, Mar 22, 2018 at 9:47 AM, Florian Weimer <fw@deneb.enyo.de> wrote:
> * Carlos O'Donell:
>> Well, Levin's "Linker's and Loaders"
>> https://www.iecc.com/linker/linker10.html, is the immediate reference
>> that I have on my shelf, and that developers working on glibc/binutils
>> should read.
> Thanks, I didn't know that.
>>> My understanding is that H.J.'s proposal requires changes when running
>>> in non-audit mode.  It certainly requires relinking all binaries,
>>> perhaps even with special flags.
>> It would require a relink only to fix existing binaries which are broken
>> by the use of -fno-plt, which is not an option that has seen general use
>> anywhere that I am aware of.
> I don't think that's actually true.  BFD ld has not emitted
> R_X86_64_JUMP_SLOT relocations with -z now for quite some time now.
> This optimization predates -fno-plt.

Not true with binutils 2.30:

[hjl@gnu-bdx-1 include]$ readelf -d /bin/ld | grep NOW
 0x0000000000000018 (BIND_NOW)
 0x000000006ffffffb (FLAGS_1)            Flags: NOW PIE
[hjl@gnu-bdx-1 include]$ readelf -rW /bin/ld | grep JUMP_SLOT
00000000001b0868  0000000100000007 R_X86_64_JUMP_SLOT
0000000000000000 getenv@GLIBC_2.2.5 + 0