Commit ecaf54a0 authored by Chen Fan's avatar Chen Fan Committed by Michael Tokarev
Browse files

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: default avatarChen Fan <chen.fan.fnst@cn.fujitsu.com>
Reviewed-by: default avatarPeter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: default avatarHu Tao <hutao@cn.fujitsu.com>
Signed-off-by: default avatarMichael Tokarev <mjt@tls.msk.ru>
parent 976620ac
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1715,4 +1715,6 @@ void hmp_info_memdev(Monitor *mon, const QDict *qdict)
    }

    monitor_printf(mon, "\n");

    qapi_free_MemdevList(memdev_list);
}
+2 −7
Original line number Diff line number Diff line
@@ -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;
}