aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTilo Eckert <tilo.eckert@flam.de>2015-06-11 16:43:27 +0200
committerAndreas Schneider <asn@cryptomilk.org>2015-06-29 11:10:45 +0200
commit0423057424ce5af157e56defb129ad0607953985 (patch)
treee6786bae7084e93531affb1552c08d5ecebbeff0
parentcc25d747d45f139729f1728cc5dcbd1666709a4f (diff)
downloadlibssh-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.c15
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;
}