From 85f7a9cbe2b487f2e27a126161bdee27e77a05cf Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Sat, 19 Jan 2008 10:07:25 +0000 Subject: [PATCH] PR 5646 * elf64-ppc.c (ppc64_elf_tls_optimize): Ensure htab->tls_get_addr non-NULL before dereferencing. --- bfd/ChangeLog | 6 ++++++ bfd/elf64-ppc.c | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 587745982c6..4a67372918d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2008-01-19 Alan Modra + + PR 5646 + * elf64-ppc.c (ppc64_elf_tls_optimize): Ensure htab->tls_get_addr + non-NULL before dereferencing. + 2008-01-15 Alan Modra PR 5604 diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index a41269c5559..026c52e421e 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -7074,7 +7074,7 @@ ppc64_elf_tls_optimize (bfd *obfd ATTRIBUTE_UNUSED, struct bfd_link_info *info) break; } - if (expecting_tls_get_addr) + if (expecting_tls_get_addr && htab->tls_get_addr != NULL) { struct plt_entry *ent; for (ent = htab->tls_get_addr->elf.plt.plist; @@ -7091,7 +7091,7 @@ ppc64_elf_tls_optimize (bfd *obfd ATTRIBUTE_UNUSED, struct bfd_link_info *info) } } - if (expecting_tls_get_addr) + if (expecting_tls_get_addr && htab->tls_get_addr_fd != NULL) { struct plt_entry *ent; for (ent = htab->tls_get_addr_fd->elf.plt.plist;