From: Nick Clifton Date: Wed, 5 Feb 2025 13:26:51 +0000 (+0000) Subject: Prevent an abort in the bfd linker when attempting to generate dynamic relocs for... X-Git-Tag: binutils-2_45~1677 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=75086e9de1707281172cc77f178e7949a4414ed0;p=thirdparty%2Fbinutils-gdb.git Prevent an abort in the bfd linker when attempting to generate dynamic relocs for a corrupt input file. PR 32638 --- 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