diff mbox

vnc: fix incorrect checking condition when updating client

Message ID 1467949056-81208-1-git-send-email-arei.gonglei@huawei.com (mailing list archive)
State New, archived
Headers show

Commit Message

Gonglei (Arei) July 8, 2016, 3:37 a.m. UTC
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>
---
 ui/vnc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Daniel P. Berrangé July 8, 2016, 8:58 a.m. UTC | #1
On Fri, Jul 08, 2016 at 11:37:36AM +0800, Gonglei wrote:
> 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>
> ---
>  ui/vnc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Daniel P. Berrange <berrange@redhat.com>


Regards,
Daniel
diff mbox

Patch

diff --git a/ui/vnc.c b/ui/vnc.c
index 18c0b56..bd602b6 100644
--- 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;