OSDN Git Service

vnc: check fd before calling qemu_set_fd_handler2() in vnc_client_write()
authorYoshiaki Tamura <tamura.yoshiaki@lab.ntt.co.jp>
Fri, 20 Aug 2010 10:10:41 +0000 (19:10 +0900)
committerAnthony Liguori <aliguori@us.ibm.com>
Sun, 22 Aug 2010 21:48:23 +0000 (16:48 -0500)
Setting fd = -1 to qemu_set_fd_handler2() causes bus error at FD_SET
in main_loop_wait().

Signed-off-by: Yoshiaki Tamura <tamura.yoshiaki@lab.ntt.co.jp>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
ui/vnc.c

index 7fc40ac..c7a1831 100644 (file)
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -1184,7 +1184,7 @@ void vnc_client_write(void *opaque)
     vnc_lock_output(vs);
     if (vs->output.offset) {
         vnc_client_write_locked(opaque);
-    } else {
+    } else if (vs->csock != -1) {
         qemu_set_fd_handler2(vs->csock, NULL, vnc_client_read, NULL, vs);
     }
     vnc_unlock_output(vs);