mirror of git://anongit.mindrot.org/openssh.git
- markus@cvs.openbsd.org 2008/05/09 16:17:51
[channels.c] error-fd race: don't enable the error fd in the select bitmask for channels with both in- and output closed, since the channel will go away before we call select(); report, lots of debugging help and ok djm@
This commit is contained in:
parent
2ff1ca56eb
commit
d654dd27b5
|
@ -127,6 +127,12 @@
|
|||
a SIGPIPE when the forked program does a write.
|
||||
ok djm@
|
||||
(Id sync only, USE_PIPES never left portable OpenSSH)
|
||||
- markus@cvs.openbsd.org 2008/05/09 16:17:51
|
||||
[channels.c]
|
||||
error-fd race: don't enable the error fd in the select bitmask
|
||||
for channels with both in- and output closed, since the channel
|
||||
will go away before we call select();
|
||||
report, lots of debugging help and ok djm@
|
||||
|
||||
20080403
|
||||
- (djm) [openbsd-compat/bsd-poll.c] Include stdlib.h to avoid compile-
|
||||
|
@ -3987,4 +3993,4 @@
|
|||
OpenServer 6 and add osr5bigcrypt support so when someone migrates
|
||||
passwords between UnixWare and OpenServer they will still work. OK dtucker@
|
||||
|
||||
$Id: ChangeLog,v 1.4928 2008/05/19 06:04:56 djm Exp $
|
||||
$Id: ChangeLog,v 1.4929 2008/05/19 06:05:41 djm Exp $
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $OpenBSD: channels.c,v 1.276 2008/05/09 04:55:56 djm Exp $ */
|
||||
/* $OpenBSD: channels.c,v 1.277 2008/05/09 16:17:51 markus Exp $ */
|
||||
/*
|
||||
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
||||
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
||||
|
@ -819,7 +819,8 @@ channel_pre_open(Channel *c, fd_set *readset, fd_set *writeset)
|
|||
}
|
||||
}
|
||||
/** XXX check close conditions, too */
|
||||
if (compat20 && c->efd != -1) {
|
||||
if (compat20 && c->efd != -1 &&
|
||||
!(c->istate == CHAN_INPUT_CLOSED && c->ostate == CHAN_OUTPUT_CLOSED)) {
|
||||
if (c->extended_usage == CHAN_EXTENDED_WRITE &&
|
||||
buffer_len(&c->extended) > 0)
|
||||
FD_SET(c->efd, writeset);
|
||||
|
|
Loading…
Reference in New Issue