From: markus Date: Tue, 28 Mar 2000 20:33:50 +0000 (+0000) Subject: missing close X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=42e1c0b1fb0c13d7c4095cb88e506a27450d0a47;p=openbsd missing close --- diff --git a/usr.bin/ssh/channels.c b/usr.bin/ssh/channels.c index 8fc85fa8171..7f684f64b00 100644 --- a/usr.bin/ssh/channels.c +++ b/usr.bin/ssh/channels.c @@ -16,7 +16,7 @@ */ #include "includes.h" -RCSID("$Id: channels.c,v 1.41 2000/03/28 20:31:25 markus Exp $"); +RCSID("$Id: channels.c,v 1.42 2000/03/28 20:33:50 markus Exp $"); #include "ssh.h" #include "packet.h" @@ -237,8 +237,10 @@ channel_free(int id) if (c == NULL) packet_disconnect("channel free: bad local channel %d", id); debug("channel_free: channel %d: status: %s", id, channel_open_message()); - if (compat13) + if (c->sock =! -1) { shutdown(c->sock, SHUT_RDWR); + close(c->sock); + } buffer_free(&c->input); buffer_free(&c->output); buffer_free(&c->extended); @@ -658,7 +660,8 @@ channel_handler(chan_fn *ftab[], fd_set * readset, fd_set * writeset) if (ftab[c->type] == NULL) continue; (*ftab[c->type])(c, readset, writeset); - chan_delete_if_full_closed(c); + if (!compat13) + chan_delete_if_full_closed(c); } }