From: Joel Brobecker Date: Tue, 3 May 2011 16:22:39 +0000 (+0000) Subject: Revert "elfread.c (elf_symtab_read): Stop memory leak" X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=dd3295eed0cca68ab628d4aa8224935ee03f3acb;p=binutils-gdb.git Revert "elfread.c (elf_symtab_read): Stop memory leak" 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. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2422cadcecf..6d6cac6b56d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2011-05-03 Joel Brobecker + + Revert: + | 2011-03-07 Michael Snyder + | * elfread.c (elf_symtab_read): Stop memory leak. + 2011-05-03 Pierre Muller * nto-tdep.c (nto_target): Replace deprecated call to diff --git a/gdb/elfread.c b/gdb/elfread.c index d3050cca3ab..6c6a7aff75d 100644 --- a/gdb/elfread.c +++ b/gdb/elfread.c @@ -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)