PR24339, segfault on NULL symbol section

Message ID
State New
Headers show
  • PR24339, segfault on NULL symbol section
Related show

Commit Message

Alan Modra March 15, 2019, 9:34 a.m.
PR 24339
	* elflink.c (elf_link_add_object_symbols): Bail out on a local
	symbol after globals if elf_bad_symtab is not set.

Alan Modra
Australia Development Lab, IBM


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)