OSDN Git Service

PR 5646
authorAlan Modra <amodra@bigpond.net.au>
Sat, 19 Jan 2008 10:07:25 +0000 (10:07 +0000)
committerAlan Modra <amodra@bigpond.net.au>
Sat, 19 Jan 2008 10:07:25 +0000 (10:07 +0000)
* elf64-ppc.c (ppc64_elf_tls_optimize): Ensure htab->tls_get_addr
non-NULL before dereferencing.

bfd/ChangeLog
bfd/elf64-ppc.c

index 5877459..4a67372 100644 (file)
@@ -1,3 +1,9 @@
+2008-01-19  Alan Modra  <amodra@bigpond.net.au>
+
+       PR 5646
+       * elf64-ppc.c (ppc64_elf_tls_optimize): Ensure htab->tls_get_addr
+       non-NULL before dereferencing.
+
 2008-01-15  Alan Modra  <amodra@bigpond.net.au>
 
        PR 5604
index a41269c..026c52e 100644 (file)
@@ -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;