X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=ssh.c;h=0435dd7ec25373c3b02affcad1bd9960bc6192a4;hb=8316deb3399fe1d0c406132cf2e795a76de26b64;hp=72f142f5426ebe3e90255edab50c7f3ee854dac4;hpb=0598df92173fece3b32cdf7bd857556454b741bd;p=PuTTY.git diff --git a/ssh.c b/ssh.c index 72f142f5..0435dd7e 100644 --- a/ssh.c +++ b/ssh.c @@ -2383,7 +2383,8 @@ static void ssh_process_queued_incoming_data(Ssh ssh) static void ssh_set_frozen(Ssh ssh, int frozen) { - sk_set_frozen(ssh->s, frozen); + if (ssh->s) + sk_set_frozen(ssh->s, frozen); ssh->frozen = frozen; } @@ -2932,6 +2933,7 @@ static int do_ssh1_login(Ssh ssh, unsigned char *in, int inlen, if (s->dlgret == 0) { ssh->close_expected = TRUE; ssh_closing((Plug)ssh, NULL, 0, 0); + crStop(0); } } @@ -3012,6 +3014,7 @@ static int do_ssh1_login(Ssh ssh, unsigned char *in, int inlen, if (s->dlgret == 0) { ssh->close_expected = TRUE; ssh_closing((Plug)ssh, NULL, 0, 0); + crStop(0); } } } @@ -3908,7 +3911,7 @@ static void ssh_setup_portfwd(Ssh ssh, const Config *cfg) strcpy(saddr, sports); n = 0; } - if (n < 255) sports[n++] = *portfwd_strptr++; + if (n < lenof(sports)-1) sports[n++] = *portfwd_strptr++; } sports[n] = 0; if (type != 'D') { @@ -3916,14 +3919,14 @@ static void ssh_setup_portfwd(Ssh ssh, const Config *cfg) portfwd_strptr++; n = 0; while (*portfwd_strptr && *portfwd_strptr != ':') { - if (n < 255) host[n++] = *portfwd_strptr++; + if (n < lenof(host)-1) host[n++] = *portfwd_strptr++; } host[n] = 0; if (*portfwd_strptr == ':') portfwd_strptr++; n = 0; while (*portfwd_strptr) { - if (n < 255) dports[n++] = *portfwd_strptr++; + if (n < lenof(dports)-1) dports[n++] = *portfwd_strptr++; } dports[n] = 0; portfwd_strptr++; @@ -5219,6 +5222,7 @@ static int do_ssh2_transport(Ssh ssh, void *vin, int inlen, if (s->dlgret == 0) { ssh->close_expected = TRUE; ssh_closing((Plug)ssh, NULL, 0, 0); + crStop(0); } } @@ -5243,6 +5247,7 @@ static int do_ssh2_transport(Ssh ssh, void *vin, int inlen, if (s->dlgret == 0) { ssh->close_expected = TRUE; ssh_closing((Plug)ssh, NULL, 0, 0); + crStop(0); } } @@ -5267,6 +5272,7 @@ static int do_ssh2_transport(Ssh ssh, void *vin, int inlen, if (s->dlgret == 0) { ssh->close_expected = TRUE; ssh_closing((Plug)ssh, NULL, 0, 0); + crStop(0); } }