Handle select() errors
diff --git a/unix/xserver/hw/vnc/vncBlockHandler.c b/unix/xserver/hw/vnc/vncBlockHandler.c
index 604dc4a..390a9b3 100644
--- a/unix/xserver/hw/vnc/vncBlockHandler.c
+++ b/unix/xserver/hw/vnc/vncBlockHandler.c
@@ -191,6 +191,9 @@
 
   static struct vncFdEntry* entry;
 
+  if (nfds <= 0)
+    return;
+
   entry = fdsHead;
   while (entry) {
     if (entry->read && FD_ISSET(entry->fd, fds))
@@ -231,6 +234,9 @@
 {
   static struct vncFdEntry* entry;
 
+  if (nfds <= 0)
+    return;
+
   entry = fdsHead;
   while (entry) {
     if (entry->write && FD_ISSET(entry->fd, fds))