]> git.proxmox.com Git - mirror_qemu.git/commitdiff
vnc: fix a memory leak in threaded vnc server
authorCorentin Chary <corentincj@iksaif.net>
Fri, 25 Feb 2011 21:54:53 +0000 (22:54 +0100)
committerAnthony Liguori <aliguori@us.ibm.com>
Fri, 25 Feb 2011 22:04:43 +0000 (16:04 -0600)
VncJobQueue's buffer is intended to be used for
as the output buffer for all operations in this queue,
but unfortunatly.

vnc_async_encoding_start() is in charge of setting this
buffer as the current output buffer, but
vnc_async_encoding_end() was not writting the changes back
to VncJobQueue, resulting in a big and ugly memleak.

Signed-off-by: Corentin Chary <corentincj@iksaif.net>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
ui/vnc-jobs-async.c

index 1d4c5e7f7841171e5b76cee088326bebf375a402..f596247004e715de5f80adfd1826dfdf3e096a17 100644 (file)
@@ -186,6 +186,8 @@ static void vnc_async_encoding_end(VncState *orig, VncState *local)
     orig->hextile = local->hextile;
     orig->zrle = local->zrle;
     orig->lossy_rect = local->lossy_rect;
+
+    queue->buffer = local->output;
 }
 
 static int vnc_worker_thread_loop(VncJobQueue *queue)