diff options
author | Tilo Eckert <tilo.eckert@flam.de> | 2015-06-11 16:43:27 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2015-06-29 11:10:45 +0200 |
commit | 0423057424ce5af157e56defb129ad0607953985 (patch) | |
tree | e6786bae7084e93531affb1552c08d5ecebbeff0 | |
parent | cc25d747d45f139729f1728cc5dcbd1666709a4f (diff) | |
download | libssh-0423057424ce5af157e56defb129ad0607953985.tar.gz libssh-0423057424ce5af157e56defb129ad0607953985.tar.xz libssh-0423057424ce5af157e56defb129ad0607953985.zip |
SSH_AUTH_PARTIAL is now correctly passed to the caller of ssh_userauth_publickey_auto().
Implicitly fixed unsafe return code handling that could result in use-after-free.
Signed-off-by: Tilo Eckert <tilo.eckert@flam.de>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
-rwxr-xr-x[-rw-r--r--] | src/auth.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/auth.c b/src/auth.c index f4563734..77b99a73 100644..100755 --- a/src/auth.c +++ b/src/auth.c @@ -1045,15 +1045,14 @@ int ssh_userauth_publickey_auto(ssh_session session, ssh_key_free(state->privkey); ssh_key_free(state->pubkey); SAFE_FREE(session->auth_auto_state); - } - if (rc == SSH_AUTH_ERROR) { - return rc; - } else if (rc == SSH_AUTH_SUCCESS) { - SSH_LOG(SSH_LOG_INFO, - "Successfully authenticated using %s", - privkey_file); + if (rc == SSH_AUTH_SUCCESS) { + SSH_LOG(SSH_LOG_INFO, + "Successfully authenticated using %s", + privkey_file); + } return rc; - } else if (rc == SSH_AUTH_AGAIN){ + } + if (rc == SSH_AUTH_AGAIN){ return rc; } |