More fixes for illegal memory accesses exposed by fuzzed binaries.
authorNick Clifton <nickc@redhat.com>
Tue, 18 Nov 2014 14:40:05 +0000 (14:40 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 18 Nov 2014 14:40:05 +0000 (14:40 +0000)
commit6937bb54a9c3ddc7ba330bc18af76f8dbe856ac3
treeef3620d4de908919f540cbb095a7f9f62da9d72c
parentde84aee38c50fd306876cdbf92007afaacbfab4d
More fixes for illegal memory accesses exposed by fuzzed binaries.

PR binutils/17512
* peXXIgen.c (pe_print_pdata): Fail if the section's virtual size
is larger than its real size.
(rsrc_print_section): Fix off-by-one error checking for overflow.
* pei-x86_64.c (pex64_bfd_print_pdata): Handle empty unwind
sections.

* dwarf.c (get_encoded_value): Warn and return if the encoded
value is more than 64-bits long.
(SAFE_BYTE_GET): Do not attempt to read more than 64-bits.
(process_extended_line_op): Add more range checks.
(decode_location_expression): Use the return value from
display_block.  Add more range checks.
(read_debug_line_header): Add range check.
(display_debug_lines_raw): Add range checks.
(display_debug_frames): Silently skip multiple zero terminators.
Add range checks.
(process_cu_tu_index): Check for non-existant or empty sections.
Use SAFE_BYTE_GET instead of byte_get.
bfd/ChangeLog
bfd/peXXigen.c
bfd/pei-x86_64.c
binutils/ChangeLog
binutils/dwarf.c