Fix more memory faults uncovered by fuzzing various executables.
authorNick Clifton <nickc@redhat.com>
Wed, 12 Nov 2014 22:39:58 +0000 (22:39 +0000)
committerNick Clifton <nickc@redhat.com>
Wed, 12 Nov 2014 22:39:58 +0000 (22:39 +0000)
commitf41e4712a7b7ac60f181e7dfc984ca35c222f0d7
tree6ac324979fd61983fb6a27dccf9fe306725789fa
parent40e91bc71f7993f2064cec4ffd007f2c814a1b29
Fix more memory faults uncovered by fuzzing various executables.

PR binutils/17512
* dwarf.c (read_and_display_attr_value): Check that we do not read
past end.
(display_debug_pubnames_worker): Add range checks.
(process_debug_info): Check for invalid pointer sizes.
(display_loc_list): Likewise.
(display_loc_list_dwo): Likewise.
(display_debug_ranges): Likewise.
(display_debug_aranges): Check for invalid address size.
(read_cie): Add range checks.  Replace call strchr with while loop.
* objdump.c (dump_dwarf): Replace abort with a warning message.
(print_section_stabs): Improve range checks.
* rdcoff.c (coff_get_slot): Use long for indx parameter type.
Add check for an excesively large index.
* rddbg.c (read_section_stabs_debugging_info): Zero terminate the
string table.  Avoid walking off the end of the stabs data.
* stabs.c (parse_stab_string): Add check for a NULL name.

PR binutils/17512
* coffcode.h (coff_slurp_line_table): Set the line number of
corrupt entries to -1.
(coff_slurp_symbol_table): Alway initialise the value of the
symbol.
* coffgen.c (coff_print_symbol): Check that the combined pointer
is valid.
(coff_print_symbol): Do not print negative line numbers.
* peXXigen.c (pe_print_idata): Add range checking displaying
member names.
bfd/ChangeLog
bfd/coffcode.h
bfd/coffgen.c
bfd/peXXigen.c
binutils/ChangeLog
binutils/dwarf.c
binutils/objdump.c
binutils/rdcoff.c
binutils/rddbg.c
binutils/stabs.c