aboutsummaryrefslogtreecommitdiff
path: root/contrib/openpam/lib/pam_vprompt.c
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2002-02-23 01:23:20 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2002-02-23 01:23:20 +0000
commitac676a111684706b7e97927f12d29b25c5205078 (patch)
tree944d313630072da47126807a18614efb96438d64 /contrib/openpam/lib/pam_vprompt.c
parent5c1eca55510ced8982522fa919a1ad4349eb96f2 (diff)
Vendor import of OpenPAM Caliopsisvendor/openpam/CALIOPSIS
Notes
Notes: svn path=/vendor/openpam/dist/; revision=91097 svn path=/vendor/openpam/CALIOPSIS/; revision=91099; tag=vendor/openpam/CALIOPSIS
Diffstat (limited to 'contrib/openpam/lib/pam_vprompt.c')
-rw-r--r--contrib/openpam/lib/pam_vprompt.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/contrib/openpam/lib/pam_vprompt.c b/contrib/openpam/lib/pam_vprompt.c
index f090b23653fa..cea56c7c06f9 100644
--- a/contrib/openpam/lib/pam_vprompt.c
+++ b/contrib/openpam/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);