[binutils-gdb] PR26492, ASAN: ppc64_elf_before_check_relocs elf64-ppc.c:4337
Alan Modra
amodra@sourceware.org
Mon Aug 24 16:43:27 GMT 2020
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=573eb292ee79dc78207cedadaa8acbb1922ab699
commit 573eb292ee79dc78207cedadaa8acbb1922ab699
Author: Alan Modra <amodra@gmail.com>
Date: Tue Aug 25 01:51:39 2020 +0930
PR26492, ASAN: ppc64_elf_before_check_relocs elf64-ppc.c:4337
PR 26492
* elf64-ppc.c (ppc_hash_table): Test is_elf_hash_table before
accessing elf_hash_table_id.
Diff:
---
bfd/ChangeLog | 6 ++++++
bfd/elf64-ppc.c | 5 +++--
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index aae0c4d02a5..8f062b085f3 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2020-08-25 Alan Modra <amodra@gmail.com>
+
+ PR 26492
+ * elf64-ppc.c (ppc_hash_table): Test is_elf_hash_table before
+ accessing elf_hash_table_id.
+
2020-08-25 Alan Modra <amodra@gmail.com>
PR 26483
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 02f0f18fc70..5a21bfafbcf 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -3276,8 +3276,9 @@ struct ppc_link_hash_table
/* Get the ppc64 ELF linker hash table from a link_info structure. */
#define ppc_hash_table(p) \
- (elf_hash_table_id ((struct elf_link_hash_table *) ((p)->hash)) \
- == PPC64_ELF_DATA ? ((struct ppc_link_hash_table *) ((p)->hash)) : NULL)
+ ((is_elf_hash_table ((p)->hash) \
+ && elf_hash_table_id (elf_hash_table (p)) == PPC64_ELF_DATA) \
+ ? (struct ppc_link_hash_table *) (p)->hash : NULL)
#define ppc_stub_hash_lookup(table, string, create, copy) \
((struct ppc_stub_hash_entry *) \
More information about the Binutils-cvs
mailing list