cpu_unregister_map_client: fix memory leak.
authorIsaku Yamahata <yamahata@valinux.co.jp>
Fri, 26 Jun 2009 09:57:18 +0000 (18:57 +0900)
committerAnthony Liguori <aliguori@us.ibm.com>
Mon, 29 Jun 2009 19:18:06 +0000 (14:18 -0500)
fix memory leak in cpu_unregister_map_client() and cpu_notify_map_clients().

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
exec.c

diff --git a/exec.c b/exec.c
index 688f603..d6e5d3c 100644 (file)
--- a/exec.c
+++ b/exec.c
@@ -3281,6 +3281,7 @@ void cpu_unregister_map_client(void *_client)
     MapClient *client = (MapClient *)_client;
 
     LIST_REMOVE(client, link);
+    qemu_free(client);
 }
 
 static void cpu_notify_map_clients(void)
@@ -3290,7 +3291,7 @@ static void cpu_notify_map_clients(void)
     while (!LIST_EMPTY(&map_client_list)) {
         client = LIST_FIRST(&map_client_list);
         client->callback(client->opaque);
-        LIST_REMOVE(client, link);
+        cpu_unregister_map_client(client);
     }
 }