From: Chen Fan Date: Mon, 18 Aug 2014 06:46:35 +0000 (+0800) Subject: hmp: fix MemdevList memory leak X-Git-Tag: v2.2.0-rc0~132^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ecaf54a052c357e0bacb93c3f178fed34e4821ec;p=thirdparty%2Fqemu.git 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 Reviewed-by: Peter Crosthwaite Reviewed-by: Hu Tao Signed-off-by: Michael Tokarev --- diff --git a/hmp.c b/hmp.c index ba40c750054..40a90dae707 100644 --- a/hmp.c +++ b/hmp.c @@ -1715,4 +1715,6 @@ void hmp_info_memdev(Monitor *mon, const QDict *qdict) } monitor_printf(mon, "\n"); + + qapi_free_MemdevList(memdev_list); } diff --git a/numa.c b/numa.c index aa772aafadc..f07149b12de 100644 --- a/numa.c +++ b/numa.c @@ -379,7 +379,7 @@ error: MemdevList *qmp_query_memdev(Error **errp) { Object *obj; - MemdevList *list = NULL, *m; + MemdevList *list = NULL; obj = object_resolve_path("/objects", NULL); if (obj == NULL) { @@ -393,11 +393,6 @@ MemdevList *qmp_query_memdev(Error **errp) return list; error: - while (list) { - m = list; - list = list->next; - g_free(m->value); - g_free(m); - } + qapi_free_MemdevList(list); return NULL; }