diff options
author | markus@openbsd.org <markus@openbsd.org> | 2017-05-30 14:18:15 +0000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2017-05-31 10:49:50 +1000 |
commit | 5f4082d886c6173b9e90b9768c9a38a3bfd92c2b (patch) | |
tree | 76ca3a7c1727cb3203b982cce20b511eee4d9b09 /auth2.c | |
parent | 7da5df11ac788bc1133d8d598d298e33500524cc (diff) |
upstream commit
sshd: pass struct ssh to auth functions; ok djm@
Upstream-ID: b00a80c3460884ebcdd14ef550154c761aebe488
Diffstat (limited to 'auth2.c')
-rw-r--r-- | auth2.c | 14 |
1 files changed, 9 insertions, 5 deletions
@@ -1,4 +1,4 @@ -/* $OpenBSD: auth2.c,v 1.137 2017/02/03 23:05:57 djm Exp $ */ +/* $OpenBSD: auth2.c,v 1.138 2017/05/30 14:18:15 markus Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -168,16 +168,20 @@ done: void do_authentication2(Authctxt *authctxt) { + struct ssh *ssh = active_state; /* XXX */ + ssh->authctxt = authctxt; /* XXX move to caller */ dispatch_init(&dispatch_protocol_error); dispatch_set(SSH2_MSG_SERVICE_REQUEST, &input_service_request); - dispatch_run(DISPATCH_BLOCK, &authctxt->success, authctxt); + dispatch_run(DISPATCH_BLOCK, &authctxt->success, ssh); + ssh->authctxt = NULL; } /*ARGSUSED*/ static int input_service_request(int type, u_int32_t seq, void *ctxt) { - Authctxt *authctxt = ctxt; + struct ssh *ssh = ctxt; + Authctxt *authctxt = ssh->authctxt; u_int len; int acceptit = 0; char *service = packet_get_cstring(&len); @@ -212,8 +216,8 @@ input_service_request(int type, u_int32_t seq, void *ctxt) static int input_userauth_request(int type, u_int32_t seq, void *ctxt) { - struct ssh *ssh = active_state; /* XXX */ - Authctxt *authctxt = ctxt; + struct ssh *ssh = ctxt; + Authctxt *authctxt = ssh->authctxt; Authmethod *m = NULL; char *user, *service, *method, *style = NULL; int authenticated = 0; |