aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf.c
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 /bfd/elf.c
parent78c8836415d45839875a5f312bfaa3d3ceea189a (diff)
downloadbinutils-7550610057c51d47e3815ef93893d4f4faa7e03d.zip
binutils-7550610057c51d47e3815ef93893d4f4faa7e03d.tar.gz
binutils-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'.
Diffstat (limited to 'bfd/elf.c')
-rw-r--r--bfd/elf.c3
1 files changed, 2 insertions, 1 deletions
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;