[binutils-gdb] Prevent an abort in the bfd linker when attempting to generate dynamic relocs for a corrupt input fi
Nick Clifton
nickc@sourceware.org
Wed Feb 5 13:27:57 GMT 2025
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=75086e9de1707281172cc77f178e7949a4414ed0
commit 75086e9de1707281172cc77f178e7949a4414ed0
Author: Nick Clifton <nickc@redhat.com>
Date: Wed Feb 5 13:26:51 2025 +0000
Prevent an abort in the bfd linker when attempting to generate dynamic relocs for a corrupt input file.
PR 32638
Diff:
---
bfd/elf64-x86-64.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index 61334c3ab04..32db254ba6c 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -5303,6 +5303,15 @@ elf_x86_64_finish_dynamic_symbol (bfd *output_bfd,
if (generate_dynamic_reloc)
{
+ /* If the relgot section has not been created, then
+ generate an error instead of a reloc. cf PR 32638. */
+ if (relgot == NULL || relgot->size == 0)
+ {
+ info->callbacks->einfo (_("%F%pB: Unable to generate dynamic relocs because a suitable section does not exist\n"),
+ output_bfd);
+ return false;
+ }
+
if (relative_reloc_name != NULL
&& htab->params->report_relative_reloc)
_bfd_x86_elf_link_report_relative_reloc
More information about the Binutils-cvs
mailing list