query-memdev: fix potential memory leaks
authorChen Fan <chen.fan.fnst@cn.fujitsu.com>
Mon, 18 Aug 2014 06:46:33 +0000 (14:46 +0800)
committerMichael Tokarev <mjt@tls.msk.ru>
Tue, 2 Sep 2014 18:38:16 +0000 (22:38 +0400)
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>
numa.c

diff --git a/numa.c b/numa.c
index c78cec96a845c7fbe745dd0bb2a6d59e73d3a062..aa772aafadcc6910a81e8d681acc5c46d628d3be 100644 (file)
--- a/numa.c
+++ b/numa.c
@@ -318,10 +318,11 @@ void memory_region_allocate_system_memory(MemoryRegion *mr, Object *owner,
 static int query_memdev(Object *obj, void *opaque)
 {
     MemdevList **list = opaque;
+    MemdevList *m = NULL;
     Error *err = NULL;
 
     if (object_dynamic_cast(obj, TYPE_MEMORY_BACKEND)) {
-        MemdevList *m = g_malloc0(sizeof(*m));
+        m = g_malloc0(sizeof(*m));
 
         m->value = g_malloc0(sizeof(*m->value));
 
@@ -369,6 +370,9 @@ static int query_memdev(Object *obj, void *opaque)
 
     return 0;
 error:
+    g_free(m->value);
+    g_free(m);
+
     return -1;
 }