X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/36f94d1f29f1bad2e8e21fdd6a6d87c898b8b25a..f5dd8adbec0c362f609e2f115ff5859ce4969d09:/ssh.c diff --git a/ssh.c b/ssh.c index 4243a049..669f26ba 100644 --- a/ssh.c +++ b/ssh.c @@ -2051,19 +2051,21 @@ static void ssh_do_close(Ssh ssh) * Now we must shut down any port and X forwardings going * through this connection. */ - for (i = 0; NULL != (c = index234(ssh->channels, i)); i++) { - switch (c->type) { - case CHAN_X11: - x11_close(c->u.x11.s); - break; - case CHAN_SOCKDATA: - pfd_close(c->u.pfd.s); - break; + if (ssh->channels) { + for (i = 0; NULL != (c = index234(ssh->channels, i)); i++) { + switch (c->type) { + case CHAN_X11: + x11_close(c->u.x11.s); + break; + case CHAN_SOCKDATA: + pfd_close(c->u.pfd.s); + break; + } + del234(ssh->channels, c); + if (ssh->version == 2) + bufchain_clear(&c->v.v2.outbuffer); + sfree(c); } - del234(ssh->channels, c); - if (ssh->version == 2) - bufchain_clear(&c->v.v2.outbuffer); - sfree(c); } }