PR22443, Global buffer overflow in _bfd_elf_get_symbol_version_string
authorAlan Modra <amodra@gmail.com>
Sat, 18 Nov 2017 12:48:22 +0000 (23:18 +1030)
committerAlan Modra <amodra@gmail.com>
Sat, 18 Nov 2017 21:11:17 +0000 (07:41 +1030)
commit160b1a618ad94988410dc81fce9189fcda5b7ff4
treedafdd60da43d99637eb1249c8cc356cde636dfc8
parentc977a5f0280f29136631cf043d6ce6cfdbc47b99
PR22443, Global buffer overflow in _bfd_elf_get_symbol_version_string

Symbols like *ABS* defined in bfd/section.c:global_syms are not
elf_symbol_type.  They can appear on relocs and perhaps other places
in an ELF bfd, so a number of places in nm.c and objdump.c are wrong
to cast an asymbol based on the bfd being ELF.  I think we lose
nothing by excluding all section symbols, not just the global_syms.

PR 22443
* nm.c (sort_symbols_by_size): Don't attempt to access
section symbol internal_elf_sym.
(print_symbol): Likewise.  Don't call bfd_get_symbol_version_string
for section symbols.
* objdump.c (compare_symbols): Don't attempt to access
section symbol internal_elf_sym.
(objdump_print_symname): Don't call bfd_get_symbol_version_string
for section symbols.
binutils/ChangeLog
binutils/nm.c
binutils/objdump.c