X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/0b351b6b21640b5abaae49fe8fbce68d4fb09645..479fe1ba750b1cda0ad3a159f2727619555436b0:/ssh.c diff --git a/ssh.c b/ssh.c index cb8380ca..0377e9a8 100644 --- a/ssh.c +++ b/ssh.c @@ -2149,7 +2149,7 @@ static int do_ssh_init(Ssh ssh, unsigned char c) ssh->rdpkt2_state.incoming_sequence = 0; s->vstring[s->vslen] = 0; - s->vstring[strcspn(s->vstring, "\r\n")] = '\0';/* remove EOL chars */ + s->vstring[strcspn(s->vstring, "\015\012")] = '\0';/* remove EOL chars */ { char *vlog; vlog = snewn(20 + s->vslen, char); @@ -2184,13 +2184,13 @@ static int do_ssh_init(Ssh ssh, unsigned char c) /* * Construct a v2 version string. */ - verstring = dupprintf("SSH-2.0-%s\r\n", sshver); + verstring = dupprintf("SSH-2.0-%s\015\012", sshver); ssh->version = 2; } else { /* * Construct a v1 version string. */ - verstring = dupprintf("SSH-%s-%s\r\n", + verstring = dupprintf("SSH-%s-%s\012", (ssh_versioncmp(s->version, "1.5") <= 0 ? s->version : "1.5"), sshver); @@ -2205,9 +2205,9 @@ static int do_ssh_init(Ssh ssh, unsigned char c) */ SHA_Init(&ssh->exhashbase); sha_string(&ssh->exhashbase, verstring, - strcspn(verstring, "\r\n")); + strcspn(verstring, "\015\012")); sha_string(&ssh->exhashbase, s->vstring, - strcspn(s->vstring, "\r\n")); + strcspn(s->vstring, "\015\012")); /* * Initialise SSHv2 protocol. @@ -2224,7 +2224,7 @@ static int do_ssh_init(Ssh ssh, unsigned char c) ssh->s_rdpkt = ssh1_rdpkt; } logeventf(ssh, "We claim version: %.*s", - strcspn(verstring, "\r\n"), verstring); + strcspn(verstring, "\015\012"), verstring); sk_write(ssh->s, verstring, strlen(verstring)); sfree(verstring); } @@ -7235,12 +7235,14 @@ static void ssh_free(void *handle) sfree(c); } freetree234(ssh->channels); + ssh->channels = NULL; } if (ssh->rportfwds) { while ((pf = delpos234(ssh->rportfwds, 0)) != NULL) sfree(pf); freetree234(ssh->rportfwds); + ssh->rportfwds = NULL; } sfree(ssh->deferred_send_data); if (ssh->x11auth) @@ -7256,9 +7258,9 @@ static void ssh_free(void *handle) if (ssh->s) ssh_do_close(ssh); expire_timer_context(ssh); - sfree(ssh); if (ssh->pinger) pinger_free(ssh->pinger); + sfree(ssh); random_unref(); }