From 75086e9de1707281172cc77f178e7949a4414ed0 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 5 Feb 2025 13:26:51 +0000 Subject: [PATCH] Prevent an abort in the bfd linker when attempting to generate dynamic relocs for a corrupt input file. PR 32638 Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=75086e9de1707281172cc77f178e7949a4414ed0] CVE: CVE-2025-1178 Signed-off-by: Ashish Sharma 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 -- 2.43.5