summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@zip.com.au>2005-07-14 17:05:51 +1000
committerDarren Tucker <dtucker@zip.com.au>2005-07-14 17:05:51 +1000
commitce377c3ff17b674236de531b4a260f96db803d46 (patch)
tree66a1a05fdd324d9ca4dbc8b369f308869641cfc6
parentbee73d5ce0dec4e011174b321e7d52fac3150691 (diff)
- markus@cvs.openbsd.org 2005/07/08 09:41:33
[channels.h] race when efd gets closed while there is still buffered data: change CHANNEL_EFD_OUTPUT_ACTIVE() 1) c->efd must always be valid AND 2a) no EOF has been seen OR 2b) there is buffered data report, initial fix and testing Chuck Cranor
-rw-r--r--ChangeLog10
-rw-r--r--channels.h4
2 files changed, 11 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 8507b4cdc..2d1efea7e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,14 @@
6 - dtucker@cvs.openbsd.org 2005/07/08 09:26:18 6 - dtucker@cvs.openbsd.org 2005/07/08 09:26:18
7 [misc.c] 7 [misc.c]
8 Make comment match code; ok djm@ 8 Make comment match code; ok djm@
9 - markus@cvs.openbsd.org 2005/07/08 09:41:33
10 [channels.h]
11 race when efd gets closed while there is still buffered data:
12 change CHANNEL_EFD_OUTPUT_ACTIVE()
13 1) c->efd must always be valid AND
14 2a) no EOF has been seen OR
15 2b) there is buffered data
16 report, initial fix and testing Chuck Cranor
9 17
1020050707 1820050707
11 - dtucker [auth-krb5.c auth.h gss-serv-krb5.c] Move KRB5CCNAME generation for 19 - dtucker [auth-krb5.c auth.h gss-serv-krb5.c] Move KRB5CCNAME generation for
@@ -2804,4 +2812,4 @@
2804 - (djm) Trim deprecated options from INSTALL. Mention UsePAM 2812 - (djm) Trim deprecated options from INSTALL. Mention UsePAM
2805 - (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu 2813 - (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu
2806 2814
2807$Id: ChangeLog,v 1.3840 2005/07/14 07:05:02 dtucker Exp $ 2815$Id: ChangeLog,v 1.3841 2005/07/14 07:05:51 dtucker Exp $
diff --git a/channels.h b/channels.h
index f87db6afb..b89b7c95d 100644
--- a/channels.h
+++ b/channels.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: channels.h,v 1.77 2005/06/16 03:38:36 djm Exp $ */ 1/* $OpenBSD: channels.h,v 1.78 2005/07/08 09:41:33 markus Exp $ */
2 2
3/* 3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi> 4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -149,7 +149,7 @@ struct Channel {
149 buffer_len(&c->extended) > 0)) 149 buffer_len(&c->extended) > 0))
150#define CHANNEL_EFD_OUTPUT_ACTIVE(c) \ 150#define CHANNEL_EFD_OUTPUT_ACTIVE(c) \
151 (compat20 && c->extended_usage == CHAN_EXTENDED_WRITE && \ 151 (compat20 && c->extended_usage == CHAN_EXTENDED_WRITE && \
152 ((c->efd != -1 && !(c->flags & (CHAN_EOF_RCVD|CHAN_CLOSE_RCVD))) || \ 152 c->efd != -1 && (!(c->flags & (CHAN_EOF_RCVD|CHAN_CLOSE_RCVD)) || \
153 buffer_len(&c->extended) > 0)) 153 buffer_len(&c->extended) > 0))
154 154
155/* channel management */ 155/* channel management */