]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Fix segmentation fault in bfd/elf32-hppa.c
authorJohn David Anglin <danglin@gcc.gnu.org>
Fri, 15 Dec 2023 21:02:32 +0000 (21:02 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Fri, 15 Dec 2023 21:02:32 +0000 (21:02 +0000)
2023-12-15  John David Anglin  <danglin@gcc.gnu.org>

PR ld/31148

bfd/ChangeLog:

* elf32-hppa.c (elf32_hppa_finish_dynamic_symbol): Output
relative reloc only when eh->root.type is bfd_link_hash_defined
or bfd_link_hash_defweak.

bfd/elf32-hppa.c

index 44129c801388312615ccc9d981b2b477a83bf972..d64ca7528a0a916c9effbc128be717c3a4955ab2 100644 (file)
@@ -4216,7 +4216,9 @@ elf32_hppa_finish_dynamic_symbol (bfd *output_bfd,
             file, we just want to emit a RELATIVE reloc.  The entry
             in the global offset table will already have been
             initialized in the relocate_section function.  */
-         if (!is_dyn)
+         if (!is_dyn
+             && (eh->root.type == bfd_link_hash_defined
+                 || eh->root.type == bfd_link_hash_defweak))
            {
              rela.r_info = ELF32_R_INFO (0, R_PARISC_DIR32);
              rela.r_addend = (eh->root.u.def.value