diff options
author | Nick Clifton <nickc@redhat.com> | 2017-07-27 12:04:50 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2017-07-27 12:04:50 +0100 |
commit | 8bdf0be19d2777565a8b1c88347f65d6a4b8c5fc (patch) | |
tree | 3837617a722ce5ec26a0e22c0e21169f47b5af0e /bfd/mach-o.c | |
parent | 63d4980d60dd137996fa282ae1df2e3fcb4519ee (diff) | |
download | gdb-8bdf0be19d2777565a8b1c88347f65d6a4b8c5fc.zip gdb-8bdf0be19d2777565a8b1c88347f65d6a4b8c5fc.tar.gz gdb-8bdf0be19d2777565a8b1c88347f65d6a4b8c5fc.tar.bz2 |
Fix address violation issues encountered when parsing corrupt binaries.
PR 21840
* mach-o.c (bfd_mach_o_read_symtab_strtab): Fail if the symtab
size is -1.
* nlmcode.h (nlm_swap_auxiliary_headers_in): Replace assertion
with error return.
* section.c (bfd_make_section_with_flags): Fail if the name or bfd
are NULL.
* vms-alpha.c (bfd_make_section_with_flags): Correct computation
of end pointer.
(evax_bfd_print_emh): Check for invalid string lengths.
Diffstat (limited to 'bfd/mach-o.c')
-rw-r--r-- | bfd/mach-o.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/bfd/mach-o.c b/bfd/mach-o.c index 1807391..9fe6326 100644 --- a/bfd/mach-o.c +++ b/bfd/mach-o.c @@ -3749,6 +3749,9 @@ bfd_mach_o_read_symtab_strtab (bfd *abfd) } else { + /* See PR 21840 for a reproducer. */ + if ((sym->strsize + 1) == 0) + return FALSE; sym->strtab = bfd_alloc (abfd, sym->strsize + 1); if (sym->strtab == NULL) return FALSE; |