fix cleanup handling in macho_symfile_read
authorTom Tromey <tromey@redhat.com>
Thu, 30 May 2013 17:06:31 +0000 (17:06 +0000)
committerTom Tromey <tromey@redhat.com>
Thu, 30 May 2013 17:06:31 +0000 (17:06 +0000)
macho_symfile_read leaks a cleanup by assigning to 'back_to' too late.

* machoread.c (macho_symfile_read): Assign first cleanup to
'back_to'.

gdb/ChangeLog
gdb/machoread.c

index fc3829a..56be923 100644 (file)
@@ -1,5 +1,10 @@
 2013-05-30  Tom Tromey  <tromey@redhat.com>
 
+       * machoread.c (macho_symfile_read): Assign first cleanup to
+       'back_to'.
+
+2013-05-30  Tom Tromey  <tromey@redhat.com>
+
        * m32r-rom.c (m32r_load): Call do_cleanups at all returns.
 
 2013-05-30  Tom Tromey  <tromey@redhat.com>
index 9877f07..d294960 100644 (file)
@@ -871,10 +871,10 @@ macho_symfile_read (struct objfile *objfile, int symfile_flags)
           struct cleanup *back_to;
 
          symbol_table = (asymbol **) xmalloc (storage_needed);
-         make_cleanup (xfree, symbol_table);
+         back_to = make_cleanup (xfree, symbol_table);
 
           init_minimal_symbol_collection ();
-          back_to = make_cleanup_discard_minimal_symbols ();
+          make_cleanup_discard_minimal_symbols ();
 
          symcount = bfd_canonicalize_symtab (objfile->obfd, symbol_table);