[clientloop.c]
     clear select masks if we return before calling select().
This commit is contained in:
Damien Miller 2001-10-12 11:36:09 +10:00
parent 0585d51a52
commit 164a7f42f9
2 changed files with 11 additions and 5 deletions

View File

@ -12,6 +12,9 @@
delay detach of session if a channel gets closed but the child is delay detach of session if a channel gets closed but the child is
still alive. however, release pty, since the fd's to the child are still alive. however, release pty, since the fd's to the child are
already closed. already closed.
- markus@cvs.openbsd.org 2001/10/11 15:24:00
[clientloop.c]
clear select masks if we return before calling select().
20011010 20011010
- (djm) OpenBSD CVS Sync - (djm) OpenBSD CVS Sync
@ -6710,4 +6713,4 @@
- Wrote replacements for strlcpy and mkdtemp - Wrote replacements for strlcpy and mkdtemp
- Released 1.0pre1 - Released 1.0pre1
$Id: ChangeLog,v 1.1602 2001/10/12 01:35:50 djm Exp $ $Id: ChangeLog,v 1.1603 2001/10/12 01:36:09 djm Exp $

View File

@ -59,7 +59,7 @@
*/ */
#include "includes.h" #include "includes.h"
RCSID("$OpenBSD: clientloop.c,v 1.83 2001/10/10 22:18:47 markus Exp $"); RCSID("$OpenBSD: clientloop.c,v 1.84 2001/10/11 15:24:00 markus Exp $");
#include "ssh.h" #include "ssh.h"
#include "ssh1.h" #include "ssh1.h"
@ -343,9 +343,12 @@ client_wait_until_can_do_something(fd_set **readsetp, fd_set **writesetp,
FD_SET(fileno(stderr), *writesetp); FD_SET(fileno(stderr), *writesetp);
} else { } else {
/* channel_prepare_select could have closed the last channel */ /* channel_prepare_select could have closed the last channel */
if (session_closed && !channel_still_open()) { if (session_closed && !channel_still_open() &&
if (!packet_have_data_to_write()) !packet_have_data_to_write()) {
return; /* clear mask since we did not call select() */
memset(*readsetp, 0, *maxfdp);
memset(*writesetp, 0, *maxfdp);
return;
} else { } else {
FD_SET(connection_in, *readsetp); FD_SET(connection_in, *readsetp);
} }