From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:57099) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RGGF0-0002HG-Hz for qemu-devel@nongnu.org; Tue, 18 Oct 2011 16:26:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RGGEy-0002VA-Vh for qemu-devel@nongnu.org; Tue, 18 Oct 2011 16:26:26 -0400 Received: from v220110690675601.yourvserver.net ([78.47.199.172]:49967) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RGGEy-0002UE-R1 for qemu-devel@nongnu.org; Tue, 18 Oct 2011 16:26:24 -0400 From: Stefan Weil Date: Tue, 18 Oct 2011 22:25:38 +0200 Message-Id: <1318969538-10479-1-git-send-email-sw@weilnetz.de> In-Reply-To: <20111018011349.GA13280@zubnet.me.uk> References: <20111018011349.GA13280@zubnet.me.uk> Subject: [Qemu-devel] [PATCH v2] gdbstub: Fix memory leak List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Stefan Weil cppcheck report: gdbstub.c:1781: error: Memory leak: s Rearranging of the code avoids the leak. v2: Replace the g_malloc0() by g_new0() (suggested by Stuart Brady). Signed-off-by: Stefan Weil --- gdbstub.c | 14 ++++++++------ 1 files changed, 8 insertions(+), 6 deletions(-) diff --git a/gdbstub.c b/gdbstub.c index 4009058..8bf7167 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1768,12 +1768,6 @@ void gdb_register_coprocessor(CPUState * env, GDBRegisterState **p; static int last_reg = NUM_CORE_REGS; - s = (GDBRegisterState *)g_malloc0(sizeof(GDBRegisterState)); - s->base_reg = last_reg; - s->num_regs = num_regs; - s->get_reg = get_reg; - s->set_reg = set_reg; - s->xml = xml; p = &env->gdb_regs; while (*p) { /* Check for duplicates. */ @@ -1781,6 +1775,14 @@ void gdb_register_coprocessor(CPUState * env, return; p = &(*p)->next; } + + s = g_new0(GDBRegisterState, 1); + s->base_reg = last_reg; + s->num_regs = num_regs; + s->get_reg = get_reg; + s->set_reg = set_reg; + s->xml = xml; + /* Add to end of list. */ last_reg += num_regs; *p = s; -- 1.7.2.5