Control of 'addr' is now handed over to {platform_,}new_connection() and
[u/mdw/putty] / ssh.c
diff --git a/ssh.c b/ssh.c
index f06b2df..23602f6 100644 (file)
--- a/ssh.c
+++ b/ssh.c
@@ -1780,7 +1780,8 @@ static void ssh_detect_bugs(Ssh ssh, char *vstring)
        (ssh->cfg.sshbug_ignore1 == AUTO &&
         (!strcmp(imp, "1.2.18") || !strcmp(imp, "1.2.19") ||
          !strcmp(imp, "1.2.20") || !strcmp(imp, "1.2.21") ||
-         !strcmp(imp, "1.2.22") || !strcmp(imp, "Cisco-1.25")))) {
+         !strcmp(imp, "1.2.22") || !strcmp(imp, "Cisco-1.25") ||
+         !strcmp(imp, "OSU_1.4alpha3")))) {
        /*
         * These versions don't support SSH1_MSG_IGNORE, so we have
         * to use a different defence against password length
@@ -1792,7 +1793,7 @@ static void ssh_detect_bugs(Ssh ssh, char *vstring)
 
     if (ssh->cfg.sshbug_plainpw1 == FORCE_ON ||
        (ssh->cfg.sshbug_plainpw1 == AUTO &&
-        (!strcmp(imp, "Cisco-1.25")))) {
+        (!strcmp(imp, "Cisco-1.25") || !strcmp(imp, "OSU_1.4alpha3")))) {
        /*
         * These versions need a plain password sent; they can't
         * handle having a null and a random length of data after
@@ -2168,7 +2169,6 @@ static const char *connect_to_host(Ssh ssh, char *host, int port,
     ssh->fn = &fn_table;
     ssh->s = new_connection(addr, *realhost, port,
                            0, 1, nodelay, (Plug) ssh, &ssh->cfg);
-    sk_addr_free(addr);
     if ((err = sk_socket_error(ssh->s)) != NULL) {
        ssh->s = NULL;
        return err;