From ddff3d84be42fa80c2c9aaa635f2b9269e74e4f9 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 2 Aug 2017 11:45:05 +0100 Subject: [PATCH] Fix seg-fault when trying to place non-ELF orphan sections. PR 21884 * emultempl/elf32.em (_place_orphan): Skip non-ELF binaries when looking for sections to merge. --- ld/ChangeLog | 6 ++++++ ld/emultempl/elf32.em | 2 ++ 2 files changed, 8 insertions(+) diff --git a/ld/ChangeLog b/ld/ChangeLog index 3c918e6..9acf64e 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2017-08-02 Nick Clifton + + PR 21884 + * emultempl/elf32.em (_place_orphan): Skip non-ELF binaries when + looking for sections to merge. + 2017-07-31 Alan Modra * ld.texinfo (plt-localentry): Revise. diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index d2551b6..8cdcc6c 100644 --- a/ld/emultempl/elf32.em +++ b/ld/emultempl/elf32.em @@ -2150,6 +2150,8 @@ gld${EMULATION_NAME}_place_orphan (asection *s, one of them has SHF_EXCLUDE. Don't merge 2 sections with different sh_info. */ if (os->bfd_section != NULL + /* PR 21884: Don't merge non-ELF sections. */ + && bfd_get_flavour (os->bfd_section->owner) == bfd_target_elf_flavour && (elf_section_data (os->bfd_section)->this_hdr.sh_info == elf_section_data (s)->this_hdr.sh_info) && (os->bfd_section->flags == 0 -- 2.7.4