From 6f79b3fa8341be46b4e40fcbf96262fee345b96e Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sat, 24 Mar 2012 21:51:10 +0100 Subject: fix a memory leak in dbug --- dbug/dbug.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/dbug/dbug.c b/dbug/dbug.c index 9aa788446bf..af0a937ff07 100644 --- a/dbug/dbug.c +++ b/dbug/dbug.c @@ -1624,7 +1624,7 @@ static void FreeState(CODE_STATE *cs, int free_state) */ void _db_end_() { - CODE_STATE *cs; + CODE_STATE *cs, dummy_cs; /* Set _dbug_on_ to be able to do full reset even when DEBUGGER_OFF was called after dbug was initialized @@ -1633,8 +1633,18 @@ void _db_end_() cs= code_state(); if (cs) + { while (cs->stack && cs->stack != &init_settings) FreeState(cs, 1); + } + else + { + cs= &dummy_cs; + bzero(cs, sizeof(*cs)); + } + + cs->stack= &init_settings; + FreeState(cs, 0); } -- cgit v1.2.1