diff options
Diffstat (limited to 'channels.c')
-rw-r--r-- | channels.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/channels.c b/channels.c index 5fa80fbad..1252f3446 100644 --- a/channels.c +++ b/channels.c | |||
@@ -39,7 +39,7 @@ | |||
39 | */ | 39 | */ |
40 | 40 | ||
41 | #include "includes.h" | 41 | #include "includes.h" |
42 | RCSID("$OpenBSD: channels.c,v 1.231 2005/12/30 15:56:36 reyk Exp $"); | 42 | RCSID("$OpenBSD: channels.c,v 1.232 2006/01/30 12:22:22 reyk Exp $"); |
43 | 43 | ||
44 | #include "ssh.h" | 44 | #include "ssh.h" |
45 | #include "ssh1.h" | 45 | #include "ssh1.h" |
@@ -1466,7 +1466,11 @@ channel_handle_wfd(Channel *c, fd_set * readset, fd_set * writeset) | |||
1466 | if (c->output_filter != NULL) { | 1466 | if (c->output_filter != NULL) { |
1467 | if ((buf = c->output_filter(c, &data, &dlen)) == NULL) { | 1467 | if ((buf = c->output_filter(c, &data, &dlen)) == NULL) { |
1468 | debug2("channel %d: filter stops", c->self); | 1468 | debug2("channel %d: filter stops", c->self); |
1469 | chan_read_failed(c); | 1469 | if (c->type != SSH_CHANNEL_OPEN) |
1470 | chan_mark_dead(c); | ||
1471 | else | ||
1472 | chan_write_failed(c); | ||
1473 | return -1; | ||
1470 | } | 1474 | } |
1471 | } else if (c->datagram) { | 1475 | } else if (c->datagram) { |
1472 | buf = data = buffer_get_string(&c->output, &dlen); | 1476 | buf = data = buffer_get_string(&c->output, &dlen); |