You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.3 KiB
44 lines
1.3 KiB
diff --git a/monitor.c b/monitor.c |
|
index b410965..f1b873d 100644 |
|
--- a/monitor.c |
|
+++ b/monitor.c |
|
@@ -1084,9 +1084,7 @@ extern KbdintDevice sshpam_device; |
|
int |
|
mm_answer_pam_init_ctx(int sock, Buffer *m) |
|
{ |
|
- |
|
debug3("%s", __func__); |
|
- authctxt->user = buffer_get_string(m, NULL); |
|
sshpam_ctxt = (sshpam_device.init_ctx)(authctxt); |
|
sshpam_authok = NULL; |
|
buffer_clear(m); |
|
@@ -1166,14 +1166,16 @@ mm_answer_pam_respond(int sock, Buffer *m) |
|
int |
|
mm_answer_pam_free_ctx(int sock, Buffer *m) |
|
{ |
|
+ int r = sshpam_authok != NULL && sshpam_authok == sshpam_ctxt; |
|
|
|
debug3("%s", __func__); |
|
(sshpam_device.free_ctx)(sshpam_ctxt); |
|
+ sshpam_ctxt = sshpam_authok = NULL; |
|
buffer_clear(m); |
|
mm_request_send(sock, MONITOR_ANS_PAM_FREE_CTX, m); |
|
auth_method = "keyboard-interactive"; |
|
auth_submethod = "pam"; |
|
- return (sshpam_authok == sshpam_ctxt); |
|
+ return r; |
|
} |
|
#endif |
|
|
|
diff --git a/monitor_wrap.c b/monitor_wrap.c |
|
index e6217b3..eac421b 100644 |
|
--- a/monitor_wrap.c |
|
+++ b/monitor_wrap.c |
|
@@ -614,7 +614,6 @@ mm_sshpam_init_ctx(Authctxt *authctxt) |
|
|
|
debug3("%s", __func__); |
|
buffer_init(&m); |
|
- buffer_put_cstring(&m, authctxt->user); |
|
mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PAM_INIT_CTX, &m); |
|
debug3("%s: waiting for MONITOR_ANS_PAM_INIT_CTX", __func__); |
|
mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_PAM_INIT_CTX, &m);
|
|
|