PR24339, segfault on NULL symbol section
Alan Modra
amodra@gmail.com
Fri Mar 15 09:43:00 GMT 2019
PR 24339
* elflink.c (elf_link_add_object_symbols): Bail out on a local
symbol after globals if elf_bad_symtab is not set.
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 2600c3934b..09990a438f 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -4442,7 +4442,13 @@ error_free_dyn:
global symbols follow all local symbols, and that sh_info
point to the first global symbol. Unfortunately, Irix 5
screws this up. */
- continue;
+ if (elf_bad_symtab (abfd))
+ continue;
+
+ /* If we aren't prepared to handle locals within the globals
+ then we'll likely segfault on a NULL section. */
+ bfd_set_error (bfd_error_bad_value);
+ goto error_free_vers;
case STB_GLOBAL:
if (isym->st_shndx != SHN_UNDEF && !common)
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list