From 72efdf166aa0ed72ecc69fc2349af6591a7a19c0 Mon Sep 17 00:00:00 2001
From: Alan Modra <amodra@gmail.com>
Date: Thu, 25 Sep 2025 10:41:32 +0930
Subject: [PATCH] Re: elf: Disallow the empty global symbol name

sparc64-linux-gnu  +FAIL: selective2
sparc64-linux-gnu  +FAIL: selective3

	PR ld/33456
	* elflink.c (elf_link_add_object_symbols): Move new check later
	to give the backend add_symbol_hook a chance to remove symbols
	with empty names.

CVE: CVE-2025-11413
Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=72efdf166aa0ed72ecc69fc2349af6591a7a19c0]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
 bfd/elflink.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/bfd/elflink.c b/bfd/elflink.c
index 0a0456177c2..5c8b822e36a 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -5118,6 +5118,13 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
 	    continue;
 	}
 
+      if (name[0] == '\0')
+	{
+	  _bfd_error_handler (_("%pB: corrupt symbol table"), abfd);
+	  bfd_set_error (bfd_error_bad_value);
+	  goto error_free_vers;
+	}
+
       /* Sanity check that all possibilities were handled.  */
       if (sec == NULL)
 	abort ();
