Fix memory access violations triggered by running objdump compiled with out-of-bounds...
authorNick Clifton <nickc@redhat.com>
Tue, 10 Feb 2015 14:11:00 +0000 (14:11 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 10 Feb 2015 14:11:00 +0000 (14:11 +0000)
commit77ef86547510cee3a2bff27bea9f19f0b2715bae
treecf37b63c2505ce132ac49d286340751c4caebe7f
parentb677c4562dea82ffaf413e7e9311ca4b9c1c6ec6
Fix memory access violations triggered by running objdump compiled with out-of-bounds sanitization checking.

PR binutils/17512
* dwarf.c (eh_addr_size): Use an unsigned type.
(size_of_encoded_value): Return an unsigned type.
(read_leb128): Break if the shift becomes too big.
(process_extended_line_op): Do not read the address if the length
is too long.
(read_cie): Warn and fail if the pointer size or segment size are
too big.
* dwarf.h (DWARF2_External_LineInfo): Delete unused and incorrect
structure definition.
(DWARF2_External_PubNames): Likewise.
(DWARF2_External_CompUnit): Likewise.
(DWARF2_External_ARange): Likewise.
(DWARF2_Internal_LineInfo): Use dwarf_vma type for
li_prologue_length.
(eh_addr_size): Update prototype.

* coffcode.h (styp_to_sec_flags): Use an unsigned long type to
hold the flag bits.
* peXXigen.c (pe_print_reloc): Use unsigned types to hold the
size and number of relocs.
(pe_print_debugdata): Use a 32-bit aligned buffer to store the
codeview record.
* versados.c (process_otr): Check the esdid value before using it
to access the EDATA.
bfd/ChangeLog
bfd/coffcode.h
bfd/peXXigen.c
bfd/versados.c
binutils/ChangeLog
binutils/dwarf.c
binutils/dwarf.h
This page took 0.026502 seconds and 4 git commands to generate.