aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@mips.com>2018-02-05 14:00:21 +0000
committerMaciej W. Rozycki <macro@mips.com>2018-02-05 14:00:21 +0000
commit7550610057c51d47e3815ef93893d4f4faa7e03d (patch)
tree9b0a6d5613cde05e1a64473f41cd23d4f95981d7
parent78c8836415d45839875a5f312bfaa3d3ceea189a (diff)
downloadgdb-7550610057c51d47e3815ef93893d4f4faa7e03d.zip
gdb-7550610057c51d47e3815ef93893d4f4faa7e03d.tar.gz
gdb-7550610057c51d47e3815ef93893d4f4faa7e03d.tar.bz2
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'.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf.c3
2 files changed, 7 insertions, 1 deletions
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;