valgrind has caught two more uninitialised elements in the SSH
[u/mdw/putty] / ssh.c
diff --git a/ssh.c b/ssh.c
index 3534d08..eae4cd5 100644 (file)
--- a/ssh.c
+++ b/ssh.c
@@ -1253,7 +1253,7 @@ static void construct_packet(Ssh ssh, int pkttype, va_list ap1, va_list ap2)
            pktlen += 4;
            break;
          case PKT_CHAR:
-           (void) va_arg(ap1, char);
+           (void) va_arg(ap1, int);
            pktlen++;
            break;
          case PKT_DATA:
@@ -1286,7 +1286,7 @@ static void construct_packet(Ssh ssh, int pkttype, va_list ap1, va_list ap2)
            p += 4;
            break;
          case PKT_CHAR:
-           argchar = va_arg(ap2, unsigned char);
+           argchar = (unsigned char) va_arg(ap2, int);
            *p = argchar;
            p++;
            break;
@@ -4347,8 +4347,8 @@ static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen, int ispkt)
                } while (ret == 0);
                if (ret < 0)
                    cleanup_exit(0);
+               c_write_str(ssh, "\r\n");
            }
-           c_write_str(ssh, "\r\n");
            s->username[strcspn(s->username, "\n\r")] = '\0';
        } else {
            char stuff[200];
@@ -5892,6 +5892,8 @@ static char *ssh_init(void *frontend_handle, void **backend_handle,
     ssh->do_ssh2_transport_state = NULL;
     ssh->do_ssh2_authconn_state = NULL;
     ssh->mainchan = NULL;
+    ssh->throttled_all = 0;
+    ssh->v1_stdout_throttling = 0;
 
     *backend_handle = ssh;