From: Maciej W. Rozycki Date: Mon, 5 Feb 2018 14:00:21 +0000 (+0000) Subject: ELF/BFD: Propagate the return status from backend section processing X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7550610057c51d47e3815ef93893d4f4faa7e03d;p=binutils-gdb.git ELF/BFD: Propagate the return status from backend section processing Fix the issue of any failure from `->elf_backend_section_processing' not being propagated by `_bfd_elf_write_object_contents'. The MIPS `_bfd_mips_elf_section_processing' handler can actually potentially fail, however the caller currently ignores that. bfd/ * elf.c (_bfd_elf_write_object_contents): Propagate a failure status from `->elf_backend_section_processing'. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index b651051b910..091e363d8c9 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2018-02-05 Maciej W. Rozycki + + * elf.c (_bfd_elf_write_object_contents): Propagate a failure + status from `->elf_backend_section_processing'. + 2018-02-02 Jim Wilson PR ld/22756 diff --git a/bfd/elf.c b/bfd/elf.c index d71efd1e0f7..dedf35feb3c 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -6354,7 +6354,8 @@ _bfd_elf_write_object_contents (bfd *abfd) = _bfd_elf_strtab_offset (elf_shstrtab (abfd), i_shdrp[count]->sh_name); if (bed->elf_backend_section_processing) - (*bed->elf_backend_section_processing) (abfd, i_shdrp[count]); + if (!(*bed->elf_backend_section_processing) (abfd, i_shdrp[count])) + return FALSE; if (i_shdrp[count]->contents) { bfd_size_type amt = i_shdrp[count]->sh_size;