diff options
author | Dan Fandrich <dan@coneharvesters.com> | 2007-03-14 02:04:17 +0000 |
---|---|---|
committer | Dan Fandrich <dan@coneharvesters.com> | 2007-03-14 02:04:17 +0000 |
commit | 9cb69f77f1a84706c44984444aaa8c430c50121c (patch) | |
tree | 99f74d86253f55fc30e7b12c97c276998044ad6c /lib | |
parent | ee332e0c8ecd91a0090e4982252579d6a2651baa (diff) |
Fixed a NULL pointer dereference on sftp initialization failure.
Added some more debug logs.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ssh.c | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -352,6 +352,7 @@ CURLcode Curl_ssh_connect(struct connectdata *conn, bool *done) */ authlist = libssh2_userauth_list(ssh->ssh_session, ssh->user, strlen(ssh->user)); + infof(data, "SSH authentication methods available: %s\n", authlist); /* * Check the supported auth types in the order I feel is most secure with the @@ -375,20 +376,26 @@ CURLcode Curl_ssh_connect(struct connectdata *conn, bool *done) curl_free(home); + infof(conn->data, "Using ssh public key file %s\n", rsa_pub); + infof(conn->data, "Using ssh private key file %s\n", rsa); + if (rsa_pub[0]) { /* The function below checks if the files exists, no need to stat() here. */ if (libssh2_userauth_publickey_fromfile(ssh->ssh_session, ssh->user, rsa_pub, rsa, "") == 0) { authed = TRUE; + infof(conn->data, "Initialized SSH public key authentication\n"); } } } if (!authed && (data->set.ssh_auth_types & CURLSSH_AUTH_PASSWORD) && (strstr(authlist, "password") != NULL)) { - if (!libssh2_userauth_password(ssh->ssh_session, ssh->user, ssh->passwd)) + if (!libssh2_userauth_password(ssh->ssh_session, ssh->user, ssh->passwd)) { authed = TRUE; + infof(conn->data, "Initialized password authentication\n"); + } } if (!authed && (data->set.ssh_auth_types & CURLSSH_AUTH_HOST) && (strstr(authlist, "hostbased") != NULL)) { @@ -400,6 +407,7 @@ CURLcode Curl_ssh_connect(struct connectdata *conn, bool *done) strlen(ssh->user), &kbd_callback) == 0) { authed = TRUE; + infof(conn->data, "Initialized keyboard interactive authentication\n"); } } @@ -424,8 +432,6 @@ CURLcode Curl_ssh_connect(struct connectdata *conn, bool *done) ssh->sftp_session = libssh2_sftp_init(ssh->ssh_session); if (ssh->sftp_session == NULL) { failf(data, "Failure initialising sftp session\n"); - libssh2_sftp_shutdown(ssh->sftp_session); - ssh->sftp_session = NULL; libssh2_session_free(ssh->ssh_session); ssh->ssh_session = NULL; return CURLE_FAILED_INIT; |