hmp: fix MemdevList memory leak
the memdev_list in hmp_info_memdev() is never freed. so we use existent method qapi_free_MemdevList() to free it. and also we can use qapi_free_MemdevList() to replace list loops to clean up the memdev list in error path. Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> Reviewed-by: Hu Tao <hutao@cn.fujitsu.com> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
This commit is contained in:
parent
976620ac40
commit
ecaf54a052
2
hmp.c
2
hmp.c
|
@ -1715,4 +1715,6 @@ void hmp_info_memdev(Monitor *mon, const QDict *qdict)
|
||||||
}
|
}
|
||||||
|
|
||||||
monitor_printf(mon, "\n");
|
monitor_printf(mon, "\n");
|
||||||
|
|
||||||
|
qapi_free_MemdevList(memdev_list);
|
||||||
}
|
}
|
||||||
|
|
9
numa.c
9
numa.c
|
@ -379,7 +379,7 @@ error:
|
||||||
MemdevList *qmp_query_memdev(Error **errp)
|
MemdevList *qmp_query_memdev(Error **errp)
|
||||||
{
|
{
|
||||||
Object *obj;
|
Object *obj;
|
||||||
MemdevList *list = NULL, *m;
|
MemdevList *list = NULL;
|
||||||
|
|
||||||
obj = object_resolve_path("/objects", NULL);
|
obj = object_resolve_path("/objects", NULL);
|
||||||
if (obj == NULL) {
|
if (obj == NULL) {
|
||||||
|
@ -393,11 +393,6 @@ MemdevList *qmp_query_memdev(Error **errp)
|
||||||
return list;
|
return list;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
while (list) {
|
qapi_free_MemdevList(list);
|
||||||
m = list;
|
|
||||||
list = list->next;
|
|
||||||
g_free(m->value);
|
|
||||||
g_free(m);
|
|
||||||
}
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue