diff options
| -rw-r--r-- | lib/ssh-libssh.c | 17 | 
1 files changed, 10 insertions, 7 deletions
diff --git a/lib/ssh-libssh.c b/lib/ssh-libssh.c index 732aad7fa..8856d9044 100644 --- a/lib/ssh-libssh.c +++ b/lib/ssh-libssh.c @@ -325,8 +325,8 @@ static int myssh_is_known(struct connectdata *conn)      if(hlen != strlen(data->set.str[STRING_SSH_HOST_PUBLIC_KEY_MD5]) ||         memcmp(&data->set.str[STRING_SSH_HOST_PUBLIC_KEY_MD5], hash, hlen)) { -          rc = SSH_ERROR; -          goto cleanup; +      rc = SSH_ERROR; +      goto cleanup;      }      rc = SSH_OK; @@ -342,11 +342,15 @@ static int myssh_is_known(struct connectdata *conn)    switch(vstate) {      case SSH_SERVER_KNOWN_OK:        keymatch = CURLKHMATCH_OK; +      break;      case SSH_SERVER_FILE_NOT_FOUND: +      /* fallthrough */      case SSH_SERVER_NOT_KNOWN:        keymatch = CURLKHMATCH_MISSING; -    default: +      break; +  default:        keymatch = CURLKHMATCH_MISMATCH; +      break;    }    if(func) { /* use callback to determine action */ @@ -994,8 +998,8 @@ static CURLcode myssh_statemach_act(struct connectdata *conn, bool *block)        if(statvfs != 0 && !sshc->acceptfail) {          Curl_safefree(sshc->quote_path1);          err = sftp_get_error(sshc->sftp_session); -        failf(data, "statvfs command failed: %s", -              ssh_get_error(sshc->ssh_session)); +        failf(data, "statvfs command failed: %s (%d)", +              ssh_get_error(sshc->ssh_session), err);          state(conn, SSH_SFTP_CLOSE);          sshc->nextstate = SSH_NO_STATE;          sshc->actualcode = CURLE_QUOTE_ERROR; @@ -1620,8 +1624,7 @@ static CURLcode myssh_statemach_act(struct connectdata *conn, bool *block)          sftp_close(sshc->sftp_file);          sshc->sftp_file = NULL;        } -      if(protop) -        Curl_safefree(protop->path); +      Curl_safefree(protop->path);        DEBUGF(infof(data, "SFTP DONE done\n"));  | 
