]> git.proxmox.com Git - mirror_qemu.git/commitdiff
vnc: fix incorrect checking condition when updating client
authorGonglei <arei.gonglei@huawei.com>
Fri, 8 Jul 2016 03:37:36 +0000 (11:37 +0800)
committerGerd Hoffmann <kraxel@redhat.com>
Tue, 12 Jul 2016 06:34:13 +0000 (08:34 +0200)
vs->disconnecting is set to TRUE and vs->ioc is closed, but
vs->ioc isn't set to NULL, so that the vnc_disconnect_finish()
isn't invoked when you update client in vnc_update_client()
after vnc_disconnect_start invoked. Let's using change the checking
condition to avoid resource leak.

Signed-off-by: Haibin Wang <wanghaibin.wang@huawei.com>
Signed-off-by: Gonglei <arei.gonglei@huawei.com>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
Message-id: 1467949056-81208-1-git-send-email-arei.gonglei@huawei.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
ui/vnc.c

index 18c0b56c3a86856afb46cfd58f4c16f3bf1d5007..bd602b6c08fb51f77382bbedd86ab76adfa76cd0 100644 (file)
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -1025,7 +1025,7 @@ static int find_and_clear_dirty_height(VncState *vs,
 static int vnc_update_client(VncState *vs, int has_dirty, bool sync)
 {
     vs->has_dirty += has_dirty;
-    if (vs->need_update && vs->ioc != NULL) {
+    if (vs->need_update && !vs->disconnecting) {
         VncDisplay *vd = vs->vd;
         VncJob *job;
         int y;