From 9010a66f2dd947815fa1b8ff10054e07ac76cc58 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 25 Aug 2020 01:48:08 +0930 Subject: PR26483, ASAN: ppc_elf_link_params elf32-ppc.c:2314 PR 26483 * elf32-ppc.c (ppc_elf_hash_table): Test is_elf_hash_table before accessing elf_hash_table_id. (cherry picked from commit a8d549c006a2135b86186d14ab5d0d5fdb702b2f) --- bfd/ChangeLog | 8 ++++++++ bfd/elf32-ppc.c | 5 +++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 6a2e702..b7b2351 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,11 @@ +2021-01-28 Alan Modra + + Apply from master + 2020-08-25 Alan Modra + PR 26483 + * elf32-ppc.c (ppc_elf_hash_table): Test is_elf_hash_table before + accessing elf_hash_table_id. + 2021-01-24 H.J. Lu PR binutils/27231 diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index 24b1485..11ae6e8 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -2233,8 +2233,9 @@ struct ppc_elf_link_hash_table /* Get the PPC ELF linker hash table from a link_info structure. */ #define ppc_elf_hash_table(p) \ - (elf_hash_table_id ((struct elf_link_hash_table *) ((p)->hash)) \ - == PPC32_ELF_DATA ? ((struct ppc_elf_link_hash_table *) ((p)->hash)) : NULL) + ((is_elf_hash_table ((p)->hash) \ + && elf_hash_table_id (elf_hash_table (p)) == PPC32_ELF_DATA) \ + ? (struct ppc_elf_link_hash_table *) (p)->hash : NULL) /* Create an entry in a PPC ELF linker hash table. */ -- cgit v1.1