diff options
author | Darren Tucker <dtucker@zip.com.au> | 2005-07-14 17:05:51 +1000 |
---|---|---|
committer | Darren Tucker <dtucker@zip.com.au> | 2005-07-14 17:05:51 +1000 |
commit | ce377c3ff17b674236de531b4a260f96db803d46 (patch) | |
tree | 66a1a05fdd324d9ca4dbc8b369f308869641cfc6 | |
parent | bee73d5ce0dec4e011174b321e7d52fac3150691 (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-- | ChangeLog | 10 | ||||
-rw-r--r-- | channels.h | 4 |
2 files changed, 11 insertions, 3 deletions
@@ -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 | ||
10 | 20050707 | 18 | 20050707 |
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 */ |