From cc16242794b13a5f942badcfffb03be5d81f14f7 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Mon, 23 Jan 2017 12:58:30 -0800 Subject: [PATCH] Fix segfault when .plt section does not exist bfd/ChangeLog 2017-02-07 Andrew Waterman * elfnn-riscv.c (riscv_elf_finish_dynamic_sections): Only write PLT entry size if PLT header is written. --- bfd/ChangeLog | 5 +++++ bfd/elfnn-riscv.c | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 8d21e04..f21d654 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2017-02-07 Andrew Waterman + + * elfnn-riscv.c (riscv_elf_finish_dynamic_sections): Only write PLT + entry size if PLT header is written. + 2017-02-06 Sheldon Lobo Fix sparc64 dynamic relocation processing to use the dynamic diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c index 320d318..b8dd1f2 100644 --- a/bfd/elfnn-riscv.c +++ b/bfd/elfnn-riscv.c @@ -2502,10 +2502,10 @@ riscv_elf_finish_dynamic_sections (bfd *output_bfd, for (i = 0; i < PLT_HEADER_INSNS; i++) bfd_put_32 (output_bfd, plt_header[i], splt->contents + 4*i); - } - elf_section_data (splt->output_section)->this_hdr.sh_entsize - = PLT_ENTRY_SIZE; + elf_section_data (splt->output_section)->this_hdr.sh_entsize + = PLT_ENTRY_SIZE; + } } if (htab->elf.sgotplt) -- 2.7.4