From: Andreas Krebbel Date: Tue, 1 Aug 2017 13:15:38 +0000 (+0200) Subject: S/390: Fix claimfile failures X-Git-Tag: binutils-2_29_1~100 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ff22155c1e315ce6058f179ec4c20ee1bd1d07bc;p=thirdparty%2Fbinutils-gdb.git S/390: Fix claimfile failures This fixes a segfault when trying to access the local_plt field in the s390 specific elf data althoug the underlaying object is a generic elf object. This fixes the following testsuite failures: < FAIL: plugin claimfile replace symbol with source < FAIL: plugin claimfile resolve symbol with source < FAIL: plugin claimfile replace file with source < FAIL: plugin set symbol visibility with source < FAIL: plugin ignore lib with source < FAIL: plugin claimfile replace lib with source < FAIL: plugin 2 with source lib < FAIL: load plugin 2 with source < FAIL: plugin 3 with source lib < FAIL: load plugin 3 with source bfd/ChangeLog: 2017-08-01 Andreas Krebbel Backport from mainline 2017-08-01 Andreas Krebbel * elf32-s390.c (elf_s390_finish_dynamic_sections): Skip if it isn't the S/390 specific elf data. * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 103334d34e0..048bf141c9c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,12 @@ +2017-08-01 Andreas Krebbel + + Backport from mainline + 2017-08-01 Andreas Krebbel + + * elf32-s390.c (elf_s390_finish_dynamic_sections): Skip if it + isn't the S/390 specific elf data. + * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise. + 2017-08-01 Andreas Krebbel Backport from mainline diff --git a/bfd/elf32-s390.c b/bfd/elf32-s390.c index 8adf9e47848..4aa3915cb25 100644 --- a/bfd/elf32-s390.c +++ b/bfd/elf32-s390.c @@ -4001,6 +4001,9 @@ elf_s390_finish_dynamic_sections (bfd *output_bfd, symtab_hdr = &elf_symtab_hdr (ibfd); + if (!is_s390_elf (ibfd)) + continue; + local_plt = elf_s390_local_plt (ibfd); if (local_plt != NULL) for (i = 0; i < symtab_hdr->sh_info; i++) diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c index 4dfa007cc8b..d25c72b88a3 100644 --- a/bfd/elf64-s390.c +++ b/bfd/elf64-s390.c @@ -3814,6 +3814,9 @@ elf_s390_finish_dynamic_sections (bfd *output_bfd, symtab_hdr = &elf_symtab_hdr (ibfd); + if (!is_s390_elf (ibfd)) + continue; + local_plt = elf_s390_local_plt (ibfd); if (local_plt != NULL) for (i = 0; i < symtab_hdr->sh_info; i++)