[committed] RISC-V: PR32772, fixed segfault caused by the accidental removal of `h != NULL'

Message ID 20250309072143.79028-1-nelson@rivosinc.com
State New
Headers
Series [committed] RISC-V: PR32772, fixed segfault caused by the accidental removal of `h != NULL' |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_binutils_build--master-arm fail Patch failed to apply
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 fail Patch failed to apply

Commit Message

Nelson Chu March 9, 2025, 7:21 a.m. UTC
  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 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Patch

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);