Fix seg-fault linking corrupt binary.

PR ld/20912
	* emultempl/elf32.em (_place_orphan): Test for ELF format of the
	orphan before looking for the SHF_EXCLUDE flag.
This commit is contained in:
Nick Clifton 2016-12-02 14:40:46 +00:00
parent 08698b7b46
commit 68c638d6e6
2 changed files with 9 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2016-12-02 Nick Clifton <nickc@redhat.com>
PR ld/20912
* emultempl/elf32.em (_place_orphan): Test for ELF format of the
orphan before looking for the SHF_EXCLUDE flag.
2016-12-02 Josh Conner <joshconner@google.com> 2016-12-02 Josh Conner <joshconner@google.com>
* Makefile.am: Add dependency information for earmelf_fuchsia.c. * Makefile.am: Add dependency information for earmelf_fuchsia.c.

View File

@ -2062,9 +2062,9 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
if (os->bfd_section != NULL if (os->bfd_section != NULL
&& (os->bfd_section->flags == 0 && (os->bfd_section->flags == 0
|| ((!bfd_link_relocatable (&link_info) || ((!bfd_link_relocatable (&link_info)
|| (((elf_section_flags (s) || (iself && (((elf_section_flags (s)
^ elf_section_flags (os->bfd_section)) ^ elf_section_flags (os->bfd_section))
& SHF_EXCLUDE) == 0)) & SHF_EXCLUDE) == 0)))
&& ((s->flags ^ os->bfd_section->flags) && ((s->flags ^ os->bfd_section->flags)
& (SEC_LOAD | SEC_ALLOC)) == 0 & (SEC_LOAD | SEC_ALLOC)) == 0
&& _bfd_elf_match_sections_by_type (link_info.output_bfd, && _bfd_elf_match_sections_by_type (link_info.output_bfd,