Revert "elfread.c (elf_symtab_read): Stop memory leak"
authorJoel Brobecker <brobecker@gnat.com>
Tue, 3 May 2011 16:22:39 +0000 (16:22 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Tue, 3 May 2011 16:22:39 +0000 (16:22 +0000)
It turns out that this change is not correct, and it causes a crash
on sparc-solaris while trying to load ld.so.  This is because the
memory is actually still referenced after elf_symtab_read completes.

gdb/ChangeLog:

        * elfread.c (elf_symtab_read): Revert the previous change
        that tried to stop a memory leak.

gdb/ChangeLog
gdb/elfread.c

index 2422cadcecf42e048e163c19967d38bf5bf2b222..6d6cac6b56dfa9d4f5073fd3a7cc90a90dd6170d 100644 (file)
@@ -1,3 +1,9 @@
+2011-05-03  Joel Brobecker <brobecker@adacore.com>
+
+        Revert:
+       | 2011-03-07  Michael Snyder  <msnyder@vmware.com>
+       | * elfread.c (elf_symtab_read): Stop memory leak.
+
 2011-05-03  Pierre Muller  <muller@ics.u-strasbg.fr>
 
        * nto-tdep.c (nto_target): Replace deprecated call to
index d3050cca3ab17f796a057ab6117cbfb303a92c04..6c6a7aff75de0958e6eedd6b16b4740dbde61dc4 100644 (file)
@@ -257,7 +257,6 @@ elf_symtab_read (struct objfile *objfile, int type,
   char *filesymname = "";
   struct dbx_symfile_info *dbx = objfile->deprecated_sym_stab_info;
   int stripped = (bfd_get_symcount (objfile->obfd) == 0);
-  struct cleanup *back_to = make_cleanup (null_cleanup, NULL);
 
   for (i = 0; i < number_of_symbols; i++)
     {
@@ -486,7 +485,6 @@ elf_symtab_read (struct objfile *objfile, int type,
                                  + (sizeof (CORE_ADDR) * max_index));
                          sectinfo = (struct stab_section_info *)
                            xmalloc (size);
-                         make_cleanup (xfree, sectinfo);
                          memset (sectinfo, 0, size);
                          sectinfo->num_sections = max_index;
                          if (filesym == NULL)
@@ -595,7 +593,6 @@ elf_symtab_read (struct objfile *objfile, int type,
            }
        }
     }
-  do_cleanups (back_to);
 }
 
 /* Build minimal symbols named `function@got.plt' (see SYMBOL_GOT_PLT_SUFFIX)