From: Nick Clifton Date: Thu, 10 Nov 2016 12:26:53 +0000 (+0000) Subject: Provide a more helpful error message when the BFD library is unable to load an extrem... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a18590c38657a982f8d544f2f54f39ba9abe9fca;p=binutils-gdb.git Provide a more helpful error message when the BFD library is unable to load an extremely large section. PR target/20737 * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Bind defined symbol locally in PIE. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 9d97c64d356..abfda75b2b3 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -4,6 +4,12 @@ * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Bind defined symbol locally in PIE. +2016-11-10 Nick Clifton + + PR binutils/20801 + * compress.c (bfd_get_full_section_contents): Provide a more + helpful error message when a section is too large to load. + 2016-11-08 Pedro Alves * dwarf2.c (struct funcinfo) : Type is bfd_boolean, diff --git a/bfd/compress.c b/bfd/compress.c index 0a966304202..95e8c232f65 100644 --- a/bfd/compress.c +++ b/bfd/compress.c @@ -247,7 +247,15 @@ bfd_get_full_section_contents (bfd *abfd, sec_ptr sec, bfd_byte **ptr) { p = (bfd_byte *) bfd_malloc (sz); if (p == NULL) + { + /* PR 20801: Provide a more helpful error message. */ + if (bfd_get_error () == bfd_error_no_memory) + _bfd_error_handler + /* xgettext:c-format */ + (_("error: %B(%A) is too large (%#lx bytes)"), + abfd, sec, (long) sz); return FALSE; + } } if (!bfd_get_section_contents (abfd, sec, p, 0, sz))