From 105c3d4de77c8abcf6e71a23c25ee66b22cef468 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Wed, 13 Feb 2002 02:17:31 +0000 Subject: [PATCH] pam_get_item(3) expects a const void **, not a const void *. Also check that the pam_conv structure it returns is not NULL. Sponsored by: DARPA, NAI Labs git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@57 185d5e19-27fe-0310-9dcf-9bff6b9f3609 --- lib/pam_vprompt.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/pam_vprompt.c b/lib/pam_vprompt.c index f090b23..cea56c7 100644 --- a/lib/pam_vprompt.c +++ b/lib/pam_vprompt.c @@ -58,16 +58,21 @@ pam_vprompt(pam_handle_t *pamh, struct pam_message msg; const struct pam_message *msgp; struct pam_response *rsp; - struct pam_conv conv; + struct pam_conv *conv; int r; - if ((r = pam_get_item(pamh, PAM_CONV, (void *)&conv)) != PAM_SUCCESS) + r = pam_get_item(pamh, PAM_CONV, (const void **)&conv); + if (r != PAM_SUCCESS) return (r); + if (conv == NULL) { + openpam_log(PAM_LOG_ERROR, "no conversation function"); + return (PAM_SYSTEM_ERR); + } vsnprintf(msgbuf, PAM_MAX_MSG_SIZE, fmt, ap); msg.msg_style = style; msg.msg = msgbuf; msgp = &msg; - r = (conv.conv)(1, &msgp, &rsp, conv.appdata_ptr); + r = (conv->conv)(1, &msgp, &rsp, conv->appdata_ptr); *resp = rsp == NULL ? NULL : rsp->resp; free(rsp); return (r);