aboutsummaryrefslogtreecommitdiff
path: root/lib/ssh.c
diff options
context:
space:
mode:
authorDan Fandrich <dan@coneharvesters.com>2007-03-14 02:04:17 +0000
committerDan Fandrich <dan@coneharvesters.com>2007-03-14 02:04:17 +0000
commit9cb69f77f1a84706c44984444aaa8c430c50121c (patch)
tree99f74d86253f55fc30e7b12c97c276998044ad6c /lib/ssh.c
parentee332e0c8ecd91a0090e4982252579d6a2651baa (diff)
Fixed a NULL pointer dereference on sftp initialization failure.
Added some more debug logs.
Diffstat (limited to 'lib/ssh.c')
-rw-r--r--lib/ssh.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/ssh.c b/lib/ssh.c
index 1846945a7..8cc5d63c0 100644
--- a/lib/ssh.c
+++ b/lib/ssh.c
@@ -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;