47 lines
1.3 KiB
Diff
47 lines
1.3 KiB
Diff
commit 72efdf166aa0ed72ecc69fc2349af6591a7a19c0
|
|
Author: Alan Modra <amodra@gmail.com>
|
|
Date: Thu Sep 25 10:41:32 2025 +0930
|
|
|
|
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.
|
|
|
|
diff --git a/bfd/elflink.c b/bfd/elflink.c
|
|
index 0a0456177c2..5c8b822e36a 100644
|
|
--- a/bfd/elflink.c
|
|
+++ b/bfd/elflink.c
|
|
@@ -5096,13 +5096,6 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
|
|
if (name == NULL)
|
|
goto error_free_vers;
|
|
|
|
- if (name[0] == '\0')
|
|
- {
|
|
- _bfd_error_handler (_("%pB: corrupt symbol table"), abfd);
|
|
- bfd_set_error (bfd_error_bad_value);
|
|
- goto error_free_vers;
|
|
- }
|
|
-
|
|
if (isym->st_shndx == SHN_COMMON
|
|
&& (abfd->flags & BFD_PLUGIN) != 0)
|
|
{
|
|
@@ -5146,6 +5139,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 ();
|