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:11:26 +0200 |
commit | 63a8f333b8dd800b5927c9d5e3e3387fa8baaa07 (patch) | |
tree | 60347fd96199f126ecce8a7ddb3422c3c2b6b8ca | |
parent | 57fd8e3187a7812b9000394d5c1335a9d499c5f9 (diff) | |
download | libssh-63a8f333b8dd800b5927c9d5e3e3387fa8baaa07.tar.gz libssh-63a8f333b8dd800b5927c9d5e3e3387fa8baaa07.tar.xz libssh-63a8f333b8dd800b5927c9d5e3e3387fa8baaa07.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>
(cherry picked from commit 0423057424ce5af157e56defb129ad0607953985)
-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; } |