http://sourceware.org/bugzilla/show_bug.cgi?id=15095

             Bug #: 15095
           Summary: Offset of DT_STRTAB is incorrect on executables
           Product: binutils
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ld
        AssignedTo: unassig...@sourceware.org
        ReportedBy: jpakk...@gmail.com
    Classification: Unclassified


The ELF specification for dynamic sections says the following about DT_STRTAB:

This element holds the address of the string table, described in Part 1. Symbol
names, library names, and other strings reside in this table.

However the offset of this value is incorrect for executables. This is easy to
verify with this command:

readelf -d /usr/bin/lsusb | grep STRTAB

which produces this output:

 0x0000000000000005 (STRTAB)             0x400970

The offset given points past the end of the binary.

The returned offset is valid if the file is a shared library:

readelf -d /usr/lib/libblas.so.3 | grep STRTAB
 0x0000000000000005 (STRTAB)             0x2c18

The value of .dynstr in the header is correct in both cases.

Tested on 64 bit Linux.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to