]> andersk Git - openssh.git/commitdiff
- markus@cvs.openbsd.org 2008/05/09 16:17:51
authordjm <djm>
Mon, 19 May 2008 06:05:41 +0000 (06:05 +0000)
committerdjm <djm>
Mon, 19 May 2008 06:05:41 +0000 (06:05 +0000)
     [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@

ChangeLog
channels.c

index 76519a6f0bf51ae3ea6db316782767733773f830..0c9e56a7bbff5fc01a75d5fb02bfa6da59aa85b9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
      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-
index 1e57951dc156f17b6c712862407449c085ef3d37..99b23d75fc1de41ca11dae4fb961df591db52f90 100644 (file)
@@ -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);
This page took 0.052455 seconds and 5 git commands to generate.