160b1a6 PR22443, Global buffer overflow in _bfd_elf_get_symbol_version_string

Authored and Committed by Alan Modra 6 years ago
    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.
    
        
file modified
+12 -0
file modified
+10 -7
file modified
+3 -3