]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
RISC-V: PR32772, fixed segfault caused by the accidental removal of `h != NULL'
authorNelson Chu <nelson@rivosinc.com>
Sun, 9 Mar 2025 06:17:09 +0000 (14:17 +0800)
committerNelson Chu <nelson@rivosinc.com>
Sun, 9 Mar 2025 06:18:06 +0000 (14:18 +0800)
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.

bfd/elfnn-riscv.c

index bca3a585f5617912efca4ce9186101baafae45b6..06e99401229675af2f7454a96c172ba2f6b5d1fd 100644 (file)
@@ -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);