aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2013-05-30 17:25:15 +0000
committerTom Tromey <tromey@redhat.com>2013-05-30 17:25:15 +0000
commit73b8d9dab1376f2d43ed8441eda335d2e1156a77 (patch)
tree0e4b8716f727c04089ed2f970e89580e97bdcbc0
parent7d266584031b069cc16e33071c064cc65a555218 (diff)
downloadgdb-73b8d9dab1376f2d43ed8441eda335d2e1156a77.zip
gdb-73b8d9dab1376f2d43ed8441eda335d2e1156a77.tar.gz
gdb-73b8d9dab1376f2d43ed8441eda335d2e1156a77.tar.bz2
fix one bug in stabsread.c
Some code in stabsread.c can return without running cleanups. * stabsread.c (read_struct_type): Call do_cleanups along all return paths.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/stabsread.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index d50309d..6d51b21 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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.
diff --git a/gdb/stabsread.c b/gdb/stabsread.c
index c63ecc2..875541c 100644
--- a/gdb/stabsread.c
+++ b/gdb/stabsread.c
@@ -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);
}