Re: Re: call_init in libc6 2.3.6.ds1-11

"Carlos O'Donell" <[email protected]>
Newsgroups gmane.linux.ports.hppa
Message-ID <[email protected]>
On 2/18/07, John David Anglin <[email protected]> wrote:
> Segv case:
> (gdb) x/16x $r20
> 0x4086221c <.LC2+84>:   0x00000003      0x40df252f      0x00000002      0x0000147c
> 0x4086222c <.LC2+100>:  0x00000014      0x00000007      0x00000017      0x407397cc
> 0x4086223c <.LC2+116>:  0x00000007      0x4072d0ac      0x00000008      0x0000c720
> 0x4086224c <.LC2+132>:  0x00000009      0x0000000c      0x6ffffffc      0x00010ec0
>
> I think '3' in the preceeding location indicates the erronious value
> is a PLTGOT value (i.e., we're looking at part of the relocated dynamic
> section in /lib/libc.so.6).

In dl-machine.h (elf_machine_runtime_setup), we look for the PLT stub
marker e.g. sig = {{0x00,0xc0,0xff,0xee, 0xde,0xad,0xbe,0xef}}. When
we find that marker we assume teh GOT is *right* against the end of
the PLT. The PLTGOT entry is the *second* entry in the GOT e.g.
0x40df252f, which seems plausible.

I still don't think the code is wrong... now if the PLT and GOT have >
0 space between themselves then we get this wrong.

c.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.