elf: Check for corrupt symbol version info
authorH.J. Lu <hjl.tools@gmail.com>
Sat, 25 Aug 2018 13:17:52 +0000 (06:17 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sat, 25 Aug 2018 13:18:06 +0000 (06:18 -0700)
commit7a815dd566f3dd32435ac73aa0a0cc948d525e06
tree56d4e2e6724b24469ee4d1d657bc0a6470be3885
parentbbf6c6b8ca19efd7b0c9bf789bbafc1262a27517
elf: Check for corrupt symbol version info

The BFD linker with PR ld/23499 may generate shared libraries with
corrupt symbol version info which leads to linker error when the
corrupt shared library is used:

/usr/bin/ld: bin/libKF5Service.so.5.49.0: _edata: invalid version 21 (max 0)
/usr/bin/ld: bin/libKF5Service.so.5.49.0: error adding symbols: bad value

Add check for corrupt symbol version info to objdump:

00000000000af005 g    D  .data 0000000000000000  <corrupt>   _edata

and readelf:

   728: 00000000000af005     0 NOTYPE  GLOBAL DEFAULT   25 _edata@<corrupt> (5)

bfd/

PR ld/23499
* elf.c (_bfd_elf_get_symbol_version_string): Return
_("<corrupt>") for corrupt symbol version info.

binutils/

PR ld/23499
* readelf.c (get_symbol_version_string): Return _("<corrupt>")
for corrupt symbol version info.
bfd/ChangeLog
bfd/elf.c
binutils/ChangeLog
binutils/readelf.c