aboutsummaryrefslogtreecommitdiff
path: root/security/openssh-portable/files/patch-monitor.c
diff options
context:
space:
mode:
Diffstat (limited to 'security/openssh-portable/files/patch-monitor.c')
-rw-r--r--security/openssh-portable/files/patch-monitor.c137
1 files changed, 0 insertions, 137 deletions
diff --git a/security/openssh-portable/files/patch-monitor.c b/security/openssh-portable/files/patch-monitor.c
deleted file mode 100644
index cca169c55f02..000000000000
--- a/security/openssh-portable/files/patch-monitor.c
+++ /dev/null
@@ -1,137 +0,0 @@
---- monitor.c.orig Wed Jun 26 15:27:11 2002
-+++ monitor.c Mon Jul 15 21:33:45 2002
-@@ -118,6 +118,10 @@
-
- #ifdef USE_PAM
- int mm_answer_pam_start(int, Buffer *);
-+int mm_answer_pam_init_ctx(int, Buffer *);
-+int mm_answer_pam_query(int, Buffer *);
-+int mm_answer_pam_respond(int, Buffer *);
-+int mm_answer_pam_free_ctx(int, Buffer *);
- #endif
-
- static Authctxt *authctxt;
-@@ -156,6 +160,10 @@
- {MONITOR_REQ_AUTHPASSWORD, MON_AUTH, mm_answer_authpassword},
- #ifdef USE_PAM
- {MONITOR_REQ_PAM_START, MON_ONCE, mm_answer_pam_start},
-+ {MONITOR_REQ_PAM_INIT_CTX, MON_ISAUTH, mm_answer_pam_init_ctx},
-+ {MONITOR_REQ_PAM_QUERY, MON_ISAUTH, mm_answer_pam_query},
-+ {MONITOR_REQ_PAM_RESPOND, MON_ISAUTH, mm_answer_pam_respond},
-+ {MONITOR_REQ_PAM_FREE_CTX, MON_ONCE|MON_AUTHDECIDE, mm_answer_pam_free_ctx},
- #endif
- #ifdef BSD_AUTH
- {MONITOR_REQ_BSDAUTHQUERY, MON_ISAUTH, mm_answer_bsdauthquery},
-@@ -198,6 +206,10 @@
- #endif
- #ifdef USE_PAM
- {MONITOR_REQ_PAM_START, MON_ONCE, mm_answer_pam_start},
-+ {MONITOR_REQ_PAM_INIT_CTX, MON_ISAUTH, mm_answer_pam_init_ctx},
-+ {MONITOR_REQ_PAM_QUERY, MON_ISAUTH, mm_answer_pam_query},
-+ {MONITOR_REQ_PAM_RESPOND, MON_ISAUTH, mm_answer_pam_respond},
-+ {MONITOR_REQ_PAM_FREE_CTX, MON_ONCE|MON_AUTHDECIDE, mm_answer_pam_free_ctx},
- #endif
- {0, 0, NULL}
- };
-@@ -732,6 +744,101 @@
- xfree(user);
-
- return (0);
-+}
-+
-+static void *pam_ctxt, *pam_authok;
-+extern KbdintDevice pam_device;
-+
-+int
-+mm_answer_pam_init_ctx(int socket, Buffer *m)
-+{
-+
-+ debug3("%s", __func__);
-+ authctxt->user = buffer_get_string(m, NULL);
-+ pam_ctxt = (pam_device.init_ctx)(authctxt);
-+ pam_authok = NULL;
-+ buffer_clear(m);
-+ if (pam_ctxt != NULL) {
-+ monitor_permit(mon_dispatch, MONITOR_REQ_PAM_FREE_CTX, 1);
-+ buffer_put_int(m, 1);
-+ } else {
-+ buffer_put_int(m, 0);
-+ }
-+ mm_request_send(socket, MONITOR_ANS_PAM_INIT_CTX, m);
-+ return (0);
-+}
-+
-+int
-+mm_answer_pam_query(int socket, Buffer *m)
-+{
-+ char *name, *info, **prompts;
-+ u_int num, *echo_on;
-+ int i, ret;
-+
-+ debug3("%s", __func__);
-+ pam_authok = NULL;
-+ ret = (pam_device.query)(pam_ctxt, &name, &info, &num, &prompts, &echo_on);
-+ if (num > 1 || name == NULL || info == NULL)
-+ ret = -1;
-+ buffer_clear(m);
-+ buffer_put_int(m, ret);
-+ buffer_put_cstring(m, name);
-+ xfree(name);
-+ buffer_put_cstring(m, info);
-+ xfree(info);
-+ buffer_put_int(m, num);
-+ for (i = 0; i < num; ++i) {
-+ buffer_put_cstring(m, prompts[i]);
-+ xfree(prompts[i]);
-+ buffer_put_int(m, echo_on[i]);
-+ }
-+ if (prompts != NULL)
-+ xfree(prompts);
-+ if (echo_on != NULL)
-+ xfree(echo_on);
-+ mm_request_send(socket, MONITOR_ANS_PAM_QUERY, m);
-+ return (0);
-+}
-+
-+int
-+mm_answer_pam_respond(int socket, Buffer *m)
-+{
-+ char **resp;
-+ u_int num;
-+ int i, ret;
-+
-+ debug3("%s", __func__);
-+ pam_authok = NULL;
-+ num = buffer_get_int(m);
-+ if (num > 0) {
-+ resp = xmalloc(num * sizeof(char *));
-+ for (i = 0; i < num; ++i)
-+ resp[i] = buffer_get_string(m, NULL);
-+ ret = (pam_device.respond)(pam_ctxt, num, resp);
-+ for (i = 0; i < num; ++i)
-+ xfree(resp[i]);
-+ xfree(resp);
-+ } else {
-+ ret = (pam_device.respond)(pam_ctxt, num, NULL);
-+ }
-+ buffer_clear(m);
-+ buffer_put_int(m, ret);
-+ mm_request_send(socket, MONITOR_ANS_PAM_RESPOND, m);
-+ auth_method = "keyboard-interactive/pam";
-+ if (ret == 0)
-+ pam_authok = pam_ctxt;
-+ return (0);
-+}
-+
-+int
-+mm_answer_pam_free_ctx(int socket, Buffer *m)
-+{
-+
-+ debug3("%s", __func__);
-+ (pam_device.free_ctx)(pam_ctxt);
-+ buffer_clear(m);
-+ mm_request_send(socket, MONITOR_ANS_PAM_FREE_CTX, m);
-+ return (pam_authok == pam_ctxt);
- }
- #endif
-