From: Nelson Chu Date: Sun, 9 Mar 2025 06:17:09 +0000 (+0800) Subject: RISC-V: PR32772, fixed segfault caused by the accidental removal of `h != NULL' X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=512316811d47d689d75d25aa9d5b98bdafd64df6;p=thirdparty%2Fbinutils-gdb.git RISC-V: PR32772, fixed segfault caused by the accidental removal of `h != NULL' bfd/ PR 32772 * elfnn-riscv.c (riscv_elf_relocate_section): Fixed segfault caused by the accidental removal of `h != NULL' when handling a call to an undefined weak function. --- diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c index bca3a585f56..06e99401229 100644 --- a/bfd/elfnn-riscv.c +++ b/bfd/elfnn-riscv.c @@ -2783,7 +2783,7 @@ riscv_elf_relocate_section (bfd *output_bfd, case R_RISCV_CALL_PLT: /* Handle a call to an undefined weak function. This won't be relaxed, so we have to handle it here. */ - if (h->root.type == bfd_link_hash_undefweak && !via_plt) + if (h != NULL && h->root.type == bfd_link_hash_undefweak && !via_plt) { /* We can use x0 as the base register. */ bfd_vma insn = bfd_getl32 (contents + rel->r_offset + 4);