From: Alan Modra Date: Thu, 25 Sep 2025 01:11:32 +0000 (+0930) Subject: Re: elf: Disallow the empty global symbol name X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=72efdf166aa0ed72ecc69fc2349af6591a7a19c0;p=thirdparty%2Fbinutils-gdb.git 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 ();