gdbstub: Fix memory leak
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 <sw@weilnetz.de> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
b08d26b76d
commit
9643c25f8d
14
gdbstub.c
14
gdbstub.c
|
@ -1781,12 +1781,6 @@ void gdb_register_coprocessor(CPUState * env,
|
||||||
GDBRegisterState **p;
|
GDBRegisterState **p;
|
||||||
static int last_reg = NUM_CORE_REGS;
|
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;
|
p = &env->gdb_regs;
|
||||||
while (*p) {
|
while (*p) {
|
||||||
/* Check for duplicates. */
|
/* Check for duplicates. */
|
||||||
|
@ -1794,6 +1788,14 @@ void gdb_register_coprocessor(CPUState * env,
|
||||||
return;
|
return;
|
||||||
p = &(*p)->next;
|
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. */
|
/* Add to end of list. */
|
||||||
last_reg += num_regs;
|
last_reg += num_regs;
|
||||||
*p = s;
|
*p = s;
|
||||||
|
|
Loading…
Reference in New Issue