X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/9fee0f0d916f6c3e903881fc742d35814e46dba9..2c94fd1cbf32093be173ea6c4378caa109f73dd4:/x11fwd.c diff --git a/x11fwd.c b/x11fwd.c index b4fecd9a..7e995239 100644 --- a/x11fwd.c +++ b/x11fwd.c @@ -106,6 +106,14 @@ static int x11_verify(char *proto, unsigned char *data, int dlen) { static int x11_receive (Socket s, int urgent, char *data, int len) { struct X11Private *pr = (struct X11Private *)sk_get_private_ptr(s); + if (urgent==3) { + /* + * A socket error has occurred. We have no way to + * communicate this down the forwarded connection, so we'll + * just treat it like a proper close. + */ + len = 0; + } if (!len) { /* Connection has closed. */ sshfwd_close(pr->c);