More fixes for memory access violations triggered by fuzzed binaries.
authorNick Clifton <nickc@redhat.com>
Tue, 9 Dec 2014 12:42:18 +0000 (12:42 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 9 Dec 2014 12:42:18 +0000 (12:42 +0000)
commitf64e188b58f4aab4cbd03aa6e9fc1aa602546e26
tree46d8f90891842ce15eee893ce5489835e9e65a20
parent137d1369ac054744d27f19e95aa8a739e6c0068d
More fixes for memory access violations triggered by fuzzed binaries.

PR binutils/17512
* objdump.c (display_any_bfd): Avoid infinite loop closing and
opening the same archive again and again.

* archive64.c (bfd_elf64_archive_slurp_armap): Add range checks.
* libbfd.c (safe_read_leb128): New function.
* libbfd-in.h (safe_read_leb128): Add prototype.
* libbfd.h: Regenerate.
* elf-attrs.c (_bfd_elf_parse_attributes): Use safe_read_leb128.
Check for an over-long subsection length.
* elf.c (elf_parse_notes): Check that the namedata is long enough
for the string comparison that is about to be performed.
(elf_read_notes): Zero-terminate the note buffer.
bfd/ChangeLog
bfd/archive64.c
bfd/elf-attrs.c
bfd/elf.c
bfd/libbfd-in.h
bfd/libbfd.c
bfd/libbfd.h
binutils/ChangeLog
binutils/objdump.c