summaryrefslogtreecommitdiff
path: root/sys/src/cmd/sshnet.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2019-04-03 14:16:28 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2019-04-03 14:16:28 +0200
commit81f3b1a233a10fdba00dbeae02fecc2c01d8bca3 (patch)
treedd8e4720caa80dce94f82038a25c469c3dc7344a /sys/src/cmd/sshnet.c
parent2251ef7a32f881ae2c80989d5285db943aa2073b (diff)
sshnet: don't leak "Dialing" connections when "connect" ctl write gets interrupted
Diffstat (limited to 'sys/src/cmd/sshnet.c')
-rwxr-xr-xsys/src/cmd/sshnet.c10
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)