This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
[binutils-gdb] ELF/BFD: Propagate the return status from backend section processing
- From: Maciej W.Rozycki <macro at sourceware dot org>
- To: bfd-cvs at sourceware dot org
- Date: 5 Feb 2018 14:01:46 -0000
- Subject: [binutils-gdb] ELF/BFD: Propagate the return status from backend section processing
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7550610057c51d47e3815ef93893d4f4faa7e03d
commit 7550610057c51d47e3815ef93893d4f4faa7e03d
Author: Maciej W. Rozycki <macro@mips.com>
Date: Mon Feb 5 14:00:21 2018 +0000
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:
---
bfd/ChangeLog | 5 +++++
bfd/elf.c | 3 ++-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index b651051..091e363 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2018-02-05 Maciej W. Rozycki <macro@mips.com>
+
+ * elf.c (_bfd_elf_write_object_contents): Propagate a failure
+ status from `->elf_backend_section_processing'.
+
2018-02-02 Jim Wilson <jimw@sifive.com>
PR ld/22756
diff --git a/bfd/elf.c b/bfd/elf.c
index d71efd1..dedf35f 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;