fix one bug in stabsread.c
authorTom Tromey <tromey@redhat.com>
Thu, 30 May 2013 17:25:15 +0000 (17:25 +0000)
committerTom Tromey <tromey@redhat.com>
Thu, 30 May 2013 17:25:15 +0000 (17:25 +0000)
Some code in stabsread.c can return without running cleanups.

* stabsread.c (read_struct_type): Call do_cleanups along
all return paths.

gdb/ChangeLog
gdb/stabsread.c

index d50309dc2916376f95f37a83f2b1a31bd87605b0..6d51b21b51965580514b5344300bc8f03db017a6 100644 (file)
@@ -1,3 +1,8 @@
+2013-05-30  Tom Tromey  <tromey@redhat.com>
+
+       * stabsread.c (read_struct_type): Call do_cleanups along
+       all return paths.
+
 2013-05-30  Maciej W. Rozycki  <macro@codesourcery.com>
 
        * mips-linux-tdep.c: Adjust formatting throughout.
index c63ecc2e3712a60a2291bf6fa97338f94cfee1fa..875541c6e178b68fcdf41cddb44330ac6ffa8ed4 100644 (file)
@@ -3515,7 +3515,10 @@ read_struct_type (char **pp, struct type *type, enum type_code type_code,
 
     TYPE_LENGTH (type) = read_huge_number (pp, 0, &nbits, 0);
     if (nbits != 0)
-      return error_type (pp, objfile);
+      {
+       do_cleanups (back_to);
+       return error_type (pp, objfile);
+      }
     set_length_in_type_chain (type);
   }