From: Alan Modra Date: Mon, 24 Aug 2020 16:21:39 +0000 (+0930) Subject: PR26492, ASAN: ppc64_elf_before_check_relocs elf64-ppc.c:4337 X-Git-Tag: binutils-2_35_2~8 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=0004f3b30c717314abfb741758eb383ac43730ed;p=thirdparty%2Fbinutils-gdb.git 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. (cherry picked from commit 573eb292ee79dc78207cedadaa8acbb1922ab699) --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index b7b23513cb0..8615b08cc56 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,6 +1,11 @@ 2021-01-28 Alan Modra Apply from master + 2020-08-25 Alan Modra + PR 26492 + * elf64-ppc.c (ppc_hash_table): Test is_elf_hash_table before + accessing elf_hash_table_id. + 2020-08-25 Alan Modra PR 26483 * elf32-ppc.c (ppc_elf_hash_table): Test is_elf_hash_table before diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index ec8c85eba59..aef161c029f 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -3283,8 +3283,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 *) \