From 48be7c1b927d5f7a8a73aef6cf840284b272dde4 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 30 May 2013 17:01:16 +0000 Subject: fix up cleanup handling in internal_vproblem internal_vproblem can return, so this introduces proper cleanup handling there. Otherwise it may make a cleanup that is leaked. * utils.c (internal_vproblem): Call do_cleanups. --- gdb/utils.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gdb/utils.c') diff --git a/gdb/utils.c b/gdb/utils.c index 218faed..c25dadf 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -713,6 +713,7 @@ internal_vproblem (struct internal_problem *problem, int quit_p; int dump_core_p; char *reason; + struct cleanup *cleanup = make_cleanup (null_cleanup, NULL); /* Don't allow infinite error/warning recursion. */ { @@ -821,6 +822,7 @@ internal_vproblem (struct internal_problem *problem, } dejavu = 0; + do_cleanups (cleanup); } static struct internal_problem internal_error_problem = { -- cgit v1.1