From 0423057424ce5af157e56defb129ad0607953985 Mon Sep 17 00:00:00 2001 From: Tilo Eckert Date: Thu, 11 Jun 2015 16:43:27 +0200 Subject: [PATCH] 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 Reviewed-by: Andreas Schneider --- src/auth.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) mode change 100644 => 100755 src/auth.c diff --git a/src/auth.c b/src/auth.c old mode 100644 new mode 100755 index f4563734..77b99a73 --- 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_SUCCESS) { + SSH_LOG(SSH_LOG_INFO, + "Successfully authenticated using %s", + privkey_file); + } + return rc; } - if (rc == SSH_AUTH_ERROR) { - return rc; - } else 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; }