diff options
Diffstat (limited to 'auth2.c')
-rw-r--r-- | auth2.c | 14 |
1 files changed, 9 insertions, 5 deletions
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: auth2.c,v 1.137 2017/02/03 23:05:57 djm Exp $ */ | 1 | /* $OpenBSD: auth2.c,v 1.138 2017/05/30 14:18:15 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -168,16 +168,20 @@ done: | |||
168 | void | 168 | void |
169 | do_authentication2(Authctxt *authctxt) | 169 | do_authentication2(Authctxt *authctxt) |
170 | { | 170 | { |
171 | struct ssh *ssh = active_state; /* XXX */ | ||
172 | ssh->authctxt = authctxt; /* XXX move to caller */ | ||
171 | dispatch_init(&dispatch_protocol_error); | 173 | dispatch_init(&dispatch_protocol_error); |
172 | dispatch_set(SSH2_MSG_SERVICE_REQUEST, &input_service_request); | 174 | dispatch_set(SSH2_MSG_SERVICE_REQUEST, &input_service_request); |
173 | dispatch_run(DISPATCH_BLOCK, &authctxt->success, authctxt); | 175 | dispatch_run(DISPATCH_BLOCK, &authctxt->success, ssh); |
176 | ssh->authctxt = NULL; | ||
174 | } | 177 | } |
175 | 178 | ||
176 | /*ARGSUSED*/ | 179 | /*ARGSUSED*/ |
177 | static int | 180 | static int |
178 | input_service_request(int type, u_int32_t seq, void *ctxt) | 181 | input_service_request(int type, u_int32_t seq, void *ctxt) |
179 | { | 182 | { |
180 | Authctxt *authctxt = ctxt; | 183 | struct ssh *ssh = ctxt; |
184 | Authctxt *authctxt = ssh->authctxt; | ||
181 | u_int len; | 185 | u_int len; |
182 | int acceptit = 0; | 186 | int acceptit = 0; |
183 | char *service = packet_get_cstring(&len); | 187 | char *service = packet_get_cstring(&len); |
@@ -212,8 +216,8 @@ input_service_request(int type, u_int32_t seq, void *ctxt) | |||
212 | static int | 216 | static int |
213 | input_userauth_request(int type, u_int32_t seq, void *ctxt) | 217 | input_userauth_request(int type, u_int32_t seq, void *ctxt) |
214 | { | 218 | { |
215 | struct ssh *ssh = active_state; /* XXX */ | 219 | struct ssh *ssh = ctxt; |
216 | Authctxt *authctxt = ctxt; | 220 | Authctxt *authctxt = ssh->authctxt; |
217 | Authmethod *m = NULL; | 221 | Authmethod *m = NULL; |
218 | char *user, *service, *method, *style = NULL; | 222 | char *user, *service, *method, *style = NULL; |
219 | int authenticated = 0; | 223 | int authenticated = 0; |