summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2016-08-02 23:28:47 +0930
committerAlan Modra <amodra@gmail.com>2016-08-02 23:39:09 +0930
commit89d77b8a520602832516ce6628ea930b4f0ccff4 (patch)
treefe47595b2e5badc9a3e14f6b5bafef7a09472f5f
parentfa3fcee7b8c73070306ec358e730d1dfcac246bf (diff)
downloadbinutils-gdb-89d77b8a520602832516ce6628ea930b4f0ccff4.tar.gz
PowerPC64 ld segfault with code in non-executable sections
PR ld/20428 * elf64-ppc.c (ppc_get_stub_entry): Don't segfault on NULL group.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf64-ppc.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 91764b7c56a..753df715ef6 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2016-08-02 Alan Modra <amodra@gmail.com>
+
+ PR ld/20428
+ * elf64-ppc.c (ppc_get_stub_entry): Don't segfault on NULL group.
+
2016-08-02 Nick Clifton <nickc@redhat.com>
PR ld/17739
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 34d46359ab0..f40b35ad0ea 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -4505,6 +4505,8 @@ ppc_get_stub_entry (const asection *input_section,
more than one stub used to reach say, printf, and we need to
distinguish between them. */
group = htab->sec_info[input_section->id].u.group;
+ if (group == NULL)
+ return NULL;
if (h != NULL && h->u.stub_cache != NULL
&& h->u.stub_cache->h == h