From: Nick Clifton Date: Mon, 9 Jan 2017 09:27:46 +0000 (+0000) Subject: Improve objdump's behaviour when it encounters a corrupt binary with an excessively... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=98f02962fefbacf1b805e93fb7bddeb58ec6ff70;p=binutils-gdb.git Improve objdump's behaviour when it encounters a corrupt binary with an excessively large symbol table. PR binutils/21013 * coffgen.c (_bfd_coff_get_external_symbols): Generate an error message if there are too many symbols to load. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f238d864717..933feba0bd4 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2017-01-09 Nick Clifton + + PR binutils/21013 + * coffgen.c (_bfd_coff_get_external_symbols): Generate an error + message if there are too many symbols to load. + 2017-01-04 James Clarke * elf64-alpha.c (elf64_alpha_relax_opt_call): Don't set tsec_free diff --git a/bfd/coffgen.c b/bfd/coffgen.c index d2cc5918490..5a61f6dc0d2 100644 --- a/bfd/coffgen.c +++ b/bfd/coffgen.c @@ -1643,7 +1643,12 @@ _bfd_coff_get_external_symbols (bfd *abfd) syms = bfd_malloc (size); if (syms == NULL) - return FALSE; + { + /* PR 21013: Provide an error message when the alloc fails. */ + _bfd_error_handler (_("%B: Not enough memory to allocate space for %lu symbols"), + abfd, size); + return FALSE; + } if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0 || bfd_bread (syms, size, abfd) != size)