diff options
author | 2000-03-28 20:33:50 +0000 | |
---|---|---|
committer | 2000-03-28 20:33:50 +0000 | |
commit | 42e1c0b1fb0c13d7c4095cb88e506a27450d0a47 (patch) | |
tree | 617341708c6d4cbe2b01db04f94c0337250b21ef | |
parent | replace big switch() with function tables (prepare for ssh2) (diff) | |
download | wireguard-openbsd-42e1c0b1fb0c13d7c4095cb88e506a27450d0a47.tar.xz wireguard-openbsd-42e1c0b1fb0c13d7c4095cb88e506a27450d0a47.zip |
missing close
-rw-r--r-- | usr.bin/ssh/channels.c | 9 |
1 files changed, 6 insertions, 3 deletions
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); } } |