diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2018-05-07 20:32:13 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2018-05-07 20:32:13 +0200 |
commit | 22a92da30dd11356153959e56bc3680dbea5fd80 (patch) | |
tree | 17406fa5ecc2438bf29fcf552b306a769c065bc6 /src | |
parent | 362b20a0bc02330949bf49da5973228e875fc0b0 (diff) | |
download | libssh-22a92da30dd11356153959e56bc3680dbea5fd80.tar.gz libssh-22a92da30dd11356153959e56bc3680dbea5fd80.tar.xz libssh-22a92da30dd11356153959e56bc3680dbea5fd80.zip |
auth: Handle SSH_AUTH_PARTIAL in agent auth correctly
Thanks to Orion Poplawski.
Fixes T82
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/auth.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -842,7 +842,7 @@ int ssh_userauth_agent(ssh_session session, return rc; ssh_string_free_char(state->comment); state->comment = NULL; - if (rc == SSH_AUTH_ERROR) { + if (rc == SSH_AUTH_ERROR || rc == SSH_AUTH_PARTIAL) { ssh_agent_state_free (session->agent_state); session->agent_state = NULL; return rc; @@ -943,7 +943,9 @@ int ssh_userauth_publickey_auto(ssh_session session, #ifndef _WIN32 /* Try authentication with ssh-agent first */ rc = ssh_userauth_agent(session, username); - if (rc == SSH_AUTH_SUCCESS || rc == SSH_AUTH_AGAIN) { + if (rc == SSH_AUTH_SUCCESS || + rc == SSH_AUTH_PARTIAL || + rc == SSH_AUTH_AGAIN ) { return rc; } #endif |