objdump disassembly of files without symbols
ubsan complains about memcpy with a NULL src even when size is zero. * objdump.c (disassemble_section): Don't call qsort unless sym count is at least two. (disassemble_data): Don't call memcpy with NULL src.
This commit is contained in:
parent
6b5e16ffd3
commit
41da082238
@ -1,3 +1,9 @@
|
||||
2020-03-10 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* objdump.c (disassemble_section): Don't call qsort unless
|
||||
sym count is at least two.
|
||||
(disassemble_data): Don't call memcpy with NULL src.
|
||||
|
||||
2020-03-09 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR 25645
|
||||
|
@ -3109,7 +3109,8 @@ disassemble_section (bfd *abfd, asection *section, void *inf)
|
||||
|
||||
/* Sort the symbols into value and section order. */
|
||||
compare_section = section;
|
||||
qsort (sorted_syms, sorted_symcount, sizeof (asymbol *), compare_symbols);
|
||||
if (sorted_symcount > 1)
|
||||
qsort (sorted_syms, sorted_symcount, sizeof (asymbol *), compare_symbols);
|
||||
|
||||
/* Skip over the relocs belonging to addresses below the
|
||||
start address. */
|
||||
@ -3376,10 +3377,13 @@ disassemble_data (bfd *abfd)
|
||||
sorted_symcount = symcount ? symcount : dynsymcount;
|
||||
sorted_syms = (asymbol **) xmalloc ((sorted_symcount + synthcount)
|
||||
* sizeof (asymbol *));
|
||||
memcpy (sorted_syms, symcount ? syms : dynsyms,
|
||||
sorted_symcount * sizeof (asymbol *));
|
||||
if (sorted_symcount != 0)
|
||||
{
|
||||
memcpy (sorted_syms, symcount ? syms : dynsyms,
|
||||
sorted_symcount * sizeof (asymbol *));
|
||||
|
||||
sorted_symcount = remove_useless_symbols (sorted_syms, sorted_symcount);
|
||||
sorted_symcount = remove_useless_symbols (sorted_syms, sorted_symcount);
|
||||
}
|
||||
|
||||
for (i = 0; i < synthcount; ++i)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user