More fixes for invalid memory accesses triggered by fuzzed binaries.
authorNick Clifton <nickc@redhat.com>
Mon, 5 Jan 2015 23:13:50 +0000 (23:13 +0000)
committerNick Clifton <nickc@redhat.com>
Mon, 5 Jan 2015 23:13:50 +0000 (23:13 +0000)
commit896ca0981329171639b1fe0b934393a79ef4fdfb
treeac6f2a1d6ab8084254dac309ba83173eb962d5c2
parent82b1b41bcdc6d01fdbd94b246e24a8a8f8c2bddd
More fixes for invalid memory accesses triggered by fuzzed binaries.

PR binutils/17512
* nm.c (print_symbol): Add 'is_synthetic' parameter.  Use it to
help initialize the info.elfinfo field.
(print_size_symbols): Add 'synth_count' parameter.  Use it to set
the is_synthetic parameter when calling print_symbol.
(print_symbols): Likewise.
(display_rel_file): Pass synth_count to printing function.
(display_archive): Break loop if the last archive displayed
matches the current archive.
* size.c (display_archive): Likewise.

* archive.c (do_slurp_bsd_armap): Make sure that the parsed sized
is at least big enough for the header to be read.
* elf32-i386.c (elf_i386_get_plt_sym_val): Skip unknown relocs.
* mach-o.c (bfd_mach_o_get_synthetic_symtab): Add range checks.
(bfd_mach_o_read_command): Prevetn duplicate error messages about
unrecognized commands.
* syms.c (_bfd_stab_section_find_nearest_line): Add range checks
when indexing into the string table.
bfd/ChangeLog
bfd/archive.c
bfd/elf32-i386.c
bfd/elfcode.h
bfd/mach-o.c
bfd/syms.c
binutils/ChangeLog
binutils/nm.c
binutils/size.c