aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Viennot <nicolas@viennot.biz>2013-11-02 22:31:36 -0400
committerAndreas Schneider <asn@cryptomilk.org>2013-11-03 10:53:44 +0100
commite9b0a8210d6fda4ce6a8a9d761b151db0db9befb (patch)
tree554e3fca6a4703fb89f69afdee5bf8ba0880bb0e
parentfb63887c1611051bd01d0aff4fd00d6c8c90b2c3 (diff)
downloadlibssh-e9b0a8210d6fda4ce6a8a9d761b151db0db9befb.tar.gz
libssh-e9b0a8210d6fda4ce6a8a9d761b151db0db9befb.tar.xz
libssh-e9b0a8210d6fda4ce6a8a9d761b151db0db9befb.zip
server: Fix ssh_execute_server_callbacks() client execution
When the public key auth handler is executed and returns SSH_OK, ssh_execute_server_callbacks() still runs some client callbacks, which may set rc to SSH_AGAIN, which triggers a default reply on auth, denying auth. Signed-off-by: Nicolas Viennot <nicolas@viennot.biz> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
-rw-r--r--src/messages.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/messages.c b/src/messages.c
index c8e0e094..2c99311d 100644
--- a/src/messages.c
+++ b/src/messages.c
@@ -309,10 +309,8 @@ static int ssh_execute_server_callbacks(ssh_session session, ssh_message msg){
if (session->server_callbacks != NULL){
rc = ssh_execute_server_request(session, msg);
- }
-
- /* This one is in fact a client callback... */
- if (session->common.callbacks != NULL) {
+ } else if (session->common.callbacks != NULL) {
+ /* This one is in fact a client callback... */
rc = ssh_execute_client_request(session, msg);
}