diff options
| author | Aris Adamantiadis <aris@0xbadc0de.be> | 2011-01-26 22:37:04 +0100 |
|---|---|---|
| committer | Aris Adamantiadis <aris@0xbadc0de.be> | 2011-01-26 22:37:04 +0100 |
| commit | eb49bf4bfdf90278d3dadb40766e602a1756fc98 (patch) | |
| tree | 0c6d9a625641f0383d83ab0aa5d4f20c5210fdbd | |
| parent | f6c31db3fc7dcf6000ff57f00dba289acfb99dd3 (diff) | |
| download | libssh-eb49bf4bfdf90278d3dadb40766e602a1756fc98.tar.gz libssh-eb49bf4bfdf90278d3dadb40766e602a1756fc98.tar.xz libssh-eb49bf4bfdf90278d3dadb40766e602a1756fc98.zip | |
SSH1: fix a few bugs that stopped the samplessh to work
| -rw-r--r-- | libssh/auth.c | 4 | ||||
| -rw-r--r-- | libssh/auth1.c | 18 |
2 files changed, 18 insertions, 4 deletions
diff --git a/libssh/auth.c b/libssh/auth.c index e5f54f3e..e6cbefbb 100644 --- a/libssh/auth.c +++ b/libssh/auth.c @@ -226,7 +226,7 @@ int ssh_userauth_none(ssh_session session, const char *username) { #ifdef WITH_SSH1 if (session->version == 1) { - ssh_userauth1_none(session, username); + rc = ssh_userauth1_none(session, username); leave_function(); return rc; } @@ -332,7 +332,7 @@ int ssh_userauth_offer_pubkey(ssh_session session, const char *username, #ifdef WITH_SSH1 if (session->version == 1) { - ssh_userauth1_offer_pubkey(session, username, type, publickey); + rc = ssh_userauth1_offer_pubkey(session, username, type, publickey); leave_function(); return rc; } diff --git a/libssh/auth1.c b/libssh/auth1.c index c3d5b3f4..3fb5779f 100644 --- a/libssh/auth1.c +++ b/libssh/auth1.c @@ -35,38 +35,46 @@ #ifdef WITH_SSH1 static int wait_auth1_status(ssh_session session) { + enter_function(); /* wait for a packet */ if (packet_read(session) != SSH_OK) { + leave_function(); return SSH_AUTH_ERROR; } if(packet_translate(session) != SSH_OK) { + leave_function(); return SSH_AUTH_ERROR; } switch(session->in_packet.type) { case SSH_SMSG_SUCCESS: + leave_function(); return SSH_AUTH_SUCCESS; case SSH_SMSG_FAILURE: + leave_function(); return SSH_AUTH_DENIED; } ssh_set_error(session, SSH_FATAL, "Was waiting for a SUCCESS or " "FAILURE, got %d", session->in_packet.type); - + leave_function(); return SSH_AUTH_ERROR; } static int send_username(ssh_session session, const char *username) { ssh_string user = NULL; /* returns SSH_AUTH_SUCCESS or SSH_AUTH_DENIED */ + enter_function(); if(session->auth_service_asked) { + leave_function(); return session->auth_service_asked; } if (!username) { if(!(username = session->username)) { if (ssh_options_set(session, SSH_OPTIONS_USER, NULL) < 0) { + leave_function(); return session->auth_service_asked = SSH_AUTH_ERROR; } else { username = session->username; @@ -75,24 +83,30 @@ static int send_username(ssh_session session, const char *username) { } user = string_from_char(username); if (user == NULL) { + leave_function(); return SSH_AUTH_ERROR; } if (buffer_add_u8(session->out_buffer, SSH_CMSG_USER) < 0) { string_free(user); + leave_function(); return SSH_AUTH_ERROR; } if (buffer_add_ssh_string(session->out_buffer, user) < 0) { string_free(user); + leave_function(); return SSH_AUTH_ERROR; } string_free(user); if (packet_send(session) != SSH_OK) { + leave_function(); return SSH_AUTH_ERROR; } session->auth_service_asked = wait_auth1_status(session); - + if(session->auth_service_asked != SSH_AUTH_ERROR) + session->auth_methods=SSH_AUTH_METHOD_PASSWORD; + leave_function(); return session->auth_service_asked; } |
