objdump sym memory leak
Alan Modra
amodra@gmail.com
Wed Jan 1 12:43:54 GMT 2025
The sym array should be freed even with a symcount of zero. (The
array will consist of a single NULL pointer in that case.)
* objdump.c (dump_bfd): Free syms before replacing with
extra_syms. Free extra_syms after adding to syms.
diff --git a/binutils/objdump.c b/binutils/objdump.c
index 478086a42c5..ecbe39e942e 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -5730,6 +5730,7 @@ dump_bfd (bfd *abfd, bool is_mainfile)
{
if (old_symcount == 0)
{
+ free (syms);
syms = extra_syms;
}
else
@@ -5739,6 +5740,7 @@ dump_bfd (bfd *abfd, bool is_mainfile)
memcpy (syms + old_symcount,
extra_syms,
(symcount + 1) * sizeof (asymbol *));
+ free (extra_syms);
}
}
--
Alan Modra
More information about the Binutils
mailing list