]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Revert "elfread.c (elf_symtab_read): Stop memory leak"
authorJoel Brobecker <brobecker@gnat.com>
Tue, 3 May 2011 16:25:20 +0000 (16:25 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Tue, 3 May 2011 16:25:20 +0000 (16:25 +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 4d33271890c828eb63266a07f08b00163ecde898..8841c580375ad911e7d587e3b0be72d990bd060e 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-04-29  Andrew Gontarek  <andrewg@cray.com>
 
        * valprint.c (val_print_array_elements): Fixed poor performance
index 29081c4f986f865c1adfa026172978e1341a317a..226ce276fe432e82d4d8d1294d762d84f4f79312 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++)
     {
@@ -482,7 +481,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)
@@ -591,7 +589,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)