diff --git a/exec.c b/exec.c index 688f603c7ceea8023c7481fb702a50bcb15000b4..d6e5d3c0c043e66706ed2f3fe78678297022ef54 100644 --- 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); } }