From: simon Date: Thu, 15 Mar 2001 11:19:59 +0000 (+0000) Subject: Fix a segfault on abrupt X connection shutdown. X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/commitdiff_plain/80e48603c6b9f2dc13c29843edc2bb5080e6974a Fix a segfault on abrupt X connection shutdown. git-svn-id: svn://svn.tartarus.org/sgt/putty@998 cda61777-01e9-0310-a592-d414129be87e --- diff --git a/ssh.c b/ssh.c index 3af4ba94..c7b724b9 100644 --- a/ssh.c +++ b/ssh.c @@ -1982,7 +1982,7 @@ static int do_ssh1_login(unsigned char *in, int inlen, int ispkt) } void sshfwd_close(struct ssh_channel *c) { - if (c) { + if (c && !c->closes) { if (ssh_version == 1) { send_packet(SSH1_MSG_CHANNEL_CLOSE, PKT_INT, c->remoteid, PKT_END); } else { diff --git a/x11fwd.c b/x11fwd.c index 8ace77d5..2b4a6bc5 100644 --- a/x11fwd.c +++ b/x11fwd.c @@ -189,7 +189,10 @@ char *x11_init (Socket *s, char *display, void *c) { } void x11_close (Socket s) { - struct X11Private *pr = (struct X11Private *)sk_get_private_ptr(s); + struct X11Private *pr; + if (!s) + return; + pr = (struct X11Private *)sk_get_private_ptr(s); if (pr->auth_protocol) { sfree(pr->auth_protocol);