diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2019-04-03 14:16:28 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2019-04-03 14:16:28 +0200 |
commit | 81f3b1a233a10fdba00dbeae02fecc2c01d8bca3 (patch) | |
tree | dd8e4720caa80dce94f82038a25c469c3dc7344a /sys | |
parent | 2251ef7a32f881ae2c80989d5285db943aa2073b (diff) |
sshnet: don't leak "Dialing" connections when "connect" ctl write gets interrupted
Diffstat (limited to 'sys')
-rwxr-xr-x | sys/src/cmd/sshnet.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/src/cmd/sshnet.c b/sys/src/cmd/sshnet.c index 993f16021..70d4aeb2d 100755 --- a/sys/src/cmd/sshnet.c +++ b/sys/src/cmd/sshnet.c @@ -1086,11 +1086,13 @@ handlemsg(Msg *m) c->sendpkt = pkt; c->sendwin = win; c->servernum = n; - c->state = Established; - if(c->wq != nil){ - respond(c->wq, nil); - c->wq = nil; + if(c->wq == nil){ + teardownclient(c); + break; } + respond(c->wq, nil); + c->wq = nil; + c->state = Established; break; case MSG_CHANNEL_OPEN_FAILURE: if(unpack(m, "_u____s", &chan, &s, &n) < 0) |