- markus@cvs.openbsd.org 2001/05/16 21:53:53
     [clientloop.c]
     check for open sessions before we call select(); fixes the x11 client
     bug reported by bowman@math.ualberta.ca
diff --git a/ChangeLog b/ChangeLog
index 9abaa26..ea161b3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,6 +9,10 @@
    - markus@cvs.openbsd.org 2001/05/16 20:51:57
      [authfile.c]
      return comments for private pem files, too; report from nolan@naic.edu
+   - markus@cvs.openbsd.org 2001/05/16 21:53:53
+     [clientloop.c]
+     check for open sessions before we call select(); fixes the x11 client
+     bug reported by bowman@math.ualberta.ca
 
 20010512
  - OpenBSD CVS Sync
@@ -5414,4 +5418,4 @@
  - Wrote replacements for strlcpy and mkdtemp
  - Released 1.0pre1
 
-$Id: ChangeLog,v 1.1221 2001/05/17 03:17:55 mouring Exp $
+$Id: ChangeLog,v 1.1222 2001/05/17 03:19:40 mouring Exp $
diff --git a/clientloop.c b/clientloop.c
index ba957fe..cea6e77 100644
--- a/clientloop.c
+++ b/clientloop.c
@@ -59,7 +59,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: clientloop.c,v 1.70 2001/05/11 14:59:55 markus Exp $");
+RCSID("$OpenBSD: clientloop.c,v 1.71 2001/05/16 21:53:53 markus Exp $");
 
 #include "ssh.h"
 #include "ssh1.h"
@@ -346,7 +346,13 @@
 		if (buffer_len(&stderr_buffer) > 0)
 			FD_SET(fileno(stderr), *writesetp);
 	} else {
-		FD_SET(connection_in, *readsetp);
+		/* channel_prepare_select could have closed the last channel */
+		if (session_closed && !channel_still_open()) {
+			if (!packet_have_data_to_write())
+				return;
+		} else {
+			FD_SET(connection_in, *readsetp);
+		}
 	}
 
 	/* Select server connection if have data to write to the server. */