objdump segfault after symbol table error

This memcpy segfaults if symcount is -1 (=> syms is NULL).
      memcpy (sorted_syms, symcount ? syms : dynsyms,
	      sorted_symcount * sizeof (asymbol *));

	* objdump.c (slurp_symtab): Don't leave symcount as -1 after
	an error.
	(slurp_dynamic_symtab): Likewise for dynsymcount.
This commit is contained in:
Alan Modra
2023-03-14 10:25:51 +10:30
parent 746598e07f
commit c8b3d02c49

View File

@@ -1015,6 +1015,7 @@ slurp_symtab (bfd *abfd)
my_bfd_nonfatal (bfd_get_filename (abfd));
free (sy);
sy = NULL;
symcount = 0;
}
return sy;
}
@@ -1048,6 +1049,7 @@ slurp_dynamic_symtab (bfd *abfd)
my_bfd_nonfatal (bfd_get_filename (abfd));
free (sy);
sy = NULL;
dynsymcount = 0;
}
return sy;
}