aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf64-s390.c
diff options
context:
space:
mode:
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>2017-08-01 15:13:40 +0200
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>2017-08-01 15:13:40 +0200
commit1ef692ea23714876cc30b1a3ab3ef33a1369f17a (patch)
tree658d91e8f9a4a1b59fa079d70aead2ac3fbcd500 /bfd/elf64-s390.c
parent4d36230d59903b92fbe2b53b31ed64a884860f0e (diff)
downloadgdb-1ef692ea23714876cc30b1a3ab3ef33a1369f17a.zip
gdb-1ef692ea23714876cc30b1a3ab3ef33a1369f17a.tar.gz
gdb-1ef692ea23714876cc30b1a3ab3ef33a1369f17a.tar.bz2
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 <krebbel@linux.vnet.ibm.com> * 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.
Diffstat (limited to 'bfd/elf64-s390.c')
-rw-r--r--bfd/elf64-s390.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
index 8c5b197..73d0331 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++)