]> granicus.if.org Git - curl/commitdiff
ssh: add two missing state names
authorDaniel Stenberg <daniel@haxx.se>
Thu, 15 Feb 2018 12:40:35 +0000 (13:40 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 16 Feb 2018 08:12:42 +0000 (09:12 +0100)
The list of state names (used in debug builds) was out of sync in
relation to the list of states (used in all builds).

I now added an assert to make sure the sizes of the two lists match, to
aid in detecting this mistake better in the future.

Regression since c92d2e14cf, shipped in 7.58.0.

Reported-by: Somnath Kundu
Fixes #2312
Closes #2313

lib/ssh.c

index b7a50a281d6c3ad5c27733b8a0b7da80d5e9e97a..d3b5cac692c6e1ae3fc665a9d2e3fc320f83eefd 100644 (file)
--- a/lib/ssh.c
+++ b/lib/ssh.c
@@ -342,6 +342,7 @@ static void state(struct connectdata *conn, sshstate nowstate)
     "SSH_AUTH_HOST",
     "SSH_AUTH_KEY_INIT",
     "SSH_AUTH_KEY",
+    "SSH_AUTH_GSSAPI",
     "SSH_AUTH_DONE",
     "SSH_SFTP_INIT",
     "SSH_SFTP_REALPATH",
@@ -376,6 +377,7 @@ static void state(struct connectdata *conn, sshstate nowstate)
     "SSH_SCP_TRANS_INIT",
     "SSH_SCP_UPLOAD_INIT",
     "SSH_SCP_DOWNLOAD_INIT",
+    "SSH_SCP_DOWNLOAD",
     "SSH_SCP_DONE",
     "SSH_SCP_SEND_EOF",
     "SSH_SCP_WAIT_EOF",
@@ -386,6 +388,9 @@ static void state(struct connectdata *conn, sshstate nowstate)
     "QUIT"
   };
 
+  /* a precaution to make sure the lists are in sync */
+  DEBUGASSERT(sizeof(names)/sizeof(names[0]) == SSH_LAST);
+
   if(sshc->state != nowstate) {
     infof(conn->data, "SFTP %p state change from %s to %s\n",
           (void *)sshc, names[sshc->state], names[nowstate]);