Fix regression caused by minimal symbol changes
authorTom Tromey <tromey@adacore.com>
Mon, 18 Mar 2019 15:32:09 +0000 (09:32 -0600)
committerTom Tromey <tromey@adacore.com>
Mon, 18 Mar 2019 15:56:27 +0000 (09:56 -0600)
The earlier patch to change minimal symbol allocations to use xmalloc
erroneously left a call to obstack_blank in
minimal_symbol_reader::install.  Because obstack_blank does not finish
the object allocation on an obstack, this in turn could cause invalid
memory reads in some situations.

This patch fixes the problem by removing the call.  Tested on x86-64
Fedora 29; also verified with valgrind.

gdb/ChangeLog
2019-03-18  Tom Tromey  <tromey@adacore.com>

* minsyms.c (minimal_symbol_reader::install): Remove call to
obstack_blank.

gdb/ChangeLog
gdb/minsyms.c

index d23819dd2091b3c3d25211114dddbc03ee2b73ad..b224ebddf8078b10f5e979de6de27ec4b357a969 100644 (file)
@@ -1,3 +1,8 @@
+2019-03-18  Tom Tromey  <tromey@adacore.com>
+
+       * minsyms.c (minimal_symbol_reader::install): Remove call to
+       obstack_blank.
+
 2019-03-18  Pedro Alves  <palves@redhat.com>
 
        * tui/tui-io.c (reverse_mode_p, reverse_save_bg, reverse_save_fg):
index fe2ad949d0b5a959cdd63bf7a5c243bb60592ac4..b95e9ef6e8b1b22260a36daceeb9001d79caeae7 100644 (file)
@@ -1360,8 +1360,6 @@ minimal_symbol_reader::install ()
          we will give back the excess space.  */
 
       alloc_count = m_msym_count + m_objfile->per_bfd->minimal_symbol_count;
-      obstack_blank (&m_objfile->per_bfd->storage_obstack,
-                    alloc_count * sizeof (struct minimal_symbol));
       gdb::unique_xmalloc_ptr<minimal_symbol>
        msym_holder (XNEWVEC (minimal_symbol, alloc_count));
       msymbols = msym_holder.get ();