From 43bb6c0e087b6fd46c0b347d2b5678acb5c68c85 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 8 May 2024 13:42:22 +0100 Subject: Fix RELOC_FOR_GLOBAL_SYMBOLS macro so that it can cope with user defined symbols that start with __wrap_. PR 31710 --- bfd/elf-bfd.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'bfd') diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index 92a0287..15a7156 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -3192,8 +3192,14 @@ extern asection _bfd_elf_large_com_section; \ if (info->wrap_hash != NULL \ && (input_section->flags & SEC_DEBUGGING) != 0) \ - h = ((struct elf_link_hash_entry *) \ - unwrap_hash_lookup (info, input_bfd, &h->root)); \ + { \ + struct bfd_link_hash_entry * new_h; \ + new_h = unwrap_hash_lookup (info, input_bfd, &h->root); \ + /* PR 31710: This lookup can fail if the input source has a \ + symbol that starts with __wrap_. */ \ + if (new_h != NULL) \ + h = (struct elf_link_hash_entry *) new_h; \ + } \ \ while (h->root.type == bfd_link_hash_indirect \ || h->root.type == bfd_link_hash_warning) \ -- cgit v1.1