diff options
author | Dag-Erling Smørgrav <des@FreeBSD.org> | 2002-02-23 01:23:20 +0000 |
---|---|---|
committer | Dag-Erling Smørgrav <des@FreeBSD.org> | 2002-02-23 01:23:20 +0000 |
commit | ac676a111684706b7e97927f12d29b25c5205078 (patch) | |
tree | 944d313630072da47126807a18614efb96438d64 /contrib/openpam/lib/pam_vprompt.c | |
parent | 5c1eca55510ced8982522fa919a1ad4349eb96f2 (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.c | 11 |
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); |