diff options
author | des <des@FreeBSD.org> | 2004-02-10 10:11:23 +0000 |
---|---|---|
committer | des <des@FreeBSD.org> | 2004-02-10 10:11:23 +0000 |
commit | e7b72507645a81484339e78353b4dff6e8f85102 (patch) | |
tree | ade6fe7568d93ce36594df493d1763a60e14e818 /contrib/openpam/lib | |
parent | 0ac9b614f9f226bd46f9d2f378dba4a0a2ecb797 (diff) | |
download | FreeBSD-src-e7b72507645a81484339e78353b4dff6e8f85102.zip FreeBSD-src-e7b72507645a81484339e78353b4dff6e8f85102.tar.gz |
Vendor import of OpenPAM Eelgrass.
Diffstat (limited to 'contrib/openpam/lib')
-rw-r--r-- | contrib/openpam/lib/openpam_borrow_cred.c | 7 | ||||
-rw-r--r-- | contrib/openpam/lib/openpam_restore_cred.c | 8 | ||||
-rw-r--r-- | contrib/openpam/lib/pam_get_authtok.c | 16 | ||||
-rw-r--r-- | contrib/openpam/lib/pam_get_data.c | 10 | ||||
-rw-r--r-- | contrib/openpam/lib/pam_get_user.c | 9 | ||||
-rw-r--r-- | contrib/openpam/lib/pam_vprompt.c | 8 |
6 files changed, 36 insertions, 22 deletions
diff --git a/contrib/openpam/lib/openpam_borrow_cred.c b/contrib/openpam/lib/openpam_borrow_cred.c index 4a46352..452631f 100644 --- a/contrib/openpam/lib/openpam_borrow_cred.c +++ b/contrib/openpam/lib/openpam_borrow_cred.c @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/lib/openpam_borrow_cred.c#10 $ + * $P4: //depot/projects/openpam/lib/openpam_borrow_cred.c#11 $ */ #include <sys/param.h> @@ -57,11 +57,12 @@ openpam_borrow_cred(pam_handle_t *pamh, const struct passwd *pwd) { struct pam_saved_cred *scred; + void *scredp; int r; ENTERI(pwd->pw_uid); - r = pam_get_data(pamh, PAM_SAVED_CRED, (const void **)&scred); - if (r == PAM_SUCCESS && scred != NULL) { + r = pam_get_data(pamh, PAM_SAVED_CRED, &scredp); + if (r == PAM_SUCCESS && scredp != NULL) { openpam_log(PAM_LOG_DEBUG, "already operating under borrowed credentials"); RETURNC(PAM_SYSTEM_ERR); diff --git a/contrib/openpam/lib/openpam_restore_cred.c b/contrib/openpam/lib/openpam_restore_cred.c index db14d6c..75ff53c 100644 --- a/contrib/openpam/lib/openpam_restore_cred.c +++ b/contrib/openpam/lib/openpam_restore_cred.c @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/lib/openpam_restore_cred.c#9 $ + * $P4: //depot/projects/openpam/lib/openpam_restore_cred.c#10 $ */ #include <sys/param.h> @@ -56,14 +56,16 @@ int openpam_restore_cred(pam_handle_t *pamh) { struct pam_saved_cred *scred; + void *scredp; int r; ENTER(); - r = pam_get_data(pamh, PAM_SAVED_CRED, (const void **)&scred); + r = pam_get_data(pamh, PAM_SAVED_CRED, &scredp); if (r != PAM_SUCCESS) RETURNC(r); - if (scred == NULL) + if (scredp == NULL) RETURNC(PAM_SYSTEM_ERR); + scred = scredp; if (scred->euid != geteuid()) { if (seteuid(scred->euid) < 0 || setgroups(scred->ngroups, scred->groups) < 0 || diff --git a/contrib/openpam/lib/pam_get_authtok.c b/contrib/openpam/lib/pam_get_authtok.c index 1df7abf..42e9768 100644 --- a/contrib/openpam/lib/pam_get_authtok.c +++ b/contrib/openpam/lib/pam_get_authtok.c @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/lib/pam_get_authtok.c#26 $ + * $P4: //depot/projects/openpam/lib/pam_get_authtok.c#27 $ */ #include <sys/param.h> @@ -60,7 +60,7 @@ pam_get_authtok(pam_handle_t *pamh, const char **authtok, const char *prompt) { - const void *oldauthtok; + const void *oldauthtok, *prevauthtok, *promptp; const char *default_prompt; char *resp, *resp2; int pitem, r, style, twice; @@ -90,16 +90,20 @@ pam_get_authtok(pam_handle_t *pamh, } if (openpam_get_option(pamh, "try_first_pass") || openpam_get_option(pamh, "use_first_pass")) { - r = pam_get_item(pamh, item, (const void **)authtok); - if (r == PAM_SUCCESS && *authtok != NULL) + r = pam_get_item(pamh, item, &prevauthtok); + if (r == PAM_SUCCESS && prevauthtok != NULL) { + *authtok = prevauthtok; RETURNC(PAM_SUCCESS); + } else if (openpam_get_option(pamh, "use_first_pass")) RETURNC(r == PAM_SUCCESS ? PAM_AUTH_ERR : r); } if (prompt == NULL) { - r = pam_get_item(pamh, pitem, (const void **)&prompt); - if (r != PAM_SUCCESS || prompt == NULL) + r = pam_get_item(pamh, pitem, &promptp); + if (r != PAM_SUCCESS || promptp == NULL) prompt = default_prompt; + else + prompt = promptp; } style = openpam_get_option(pamh, "echo_pass") ? PAM_PROMPT_ECHO_ON : PAM_PROMPT_ECHO_OFF; diff --git a/contrib/openpam/lib/pam_get_data.c b/contrib/openpam/lib/pam_get_data.c index 9fcb33a..6d6709d 100644 --- a/contrib/openpam/lib/pam_get_data.c +++ b/contrib/openpam/lib/pam_get_data.c @@ -31,9 +31,10 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/lib/pam_get_data.c#12 $ + * $P4: //depot/projects/openpam/lib/pam_get_data.c#13 $ */ +#include <stdint.h> #include <string.h> #include <security/pam_appl.h> @@ -50,18 +51,19 @@ int pam_get_data(pam_handle_t *pamh, const char *module_data_name, - const void **data) + void **data) { pam_data_t *dp; ENTERS(module_data_name); if (pamh == NULL) RETURNC(PAM_SYSTEM_ERR); - for (dp = pamh->module_data; dp != NULL; dp = dp->next) + for (dp = pamh->module_data; dp != NULL; dp = dp->next) { if (strcmp(dp->name, module_data_name) == 0) { - *data = dp->data; + *data = (void *)(intptr_t)dp->data; RETURNC(PAM_SUCCESS); } + } RETURNC(PAM_NO_MODULE_DATA); } diff --git a/contrib/openpam/lib/pam_get_user.c b/contrib/openpam/lib/pam_get_user.c index 413056c..2e8e342 100644 --- a/contrib/openpam/lib/pam_get_user.c +++ b/contrib/openpam/lib/pam_get_user.c @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/lib/pam_get_user.c#18 $ + * $P4: //depot/projects/openpam/lib/pam_get_user.c#19 $ */ #include <sys/param.h> @@ -57,6 +57,7 @@ pam_get_user(pam_handle_t *pamh, const char **user, const char *prompt) { + const void *promptp; char *resp; int r; @@ -67,9 +68,11 @@ pam_get_user(pam_handle_t *pamh, if (r == PAM_SUCCESS && *user != NULL) RETURNC(PAM_SUCCESS); if (prompt == NULL) { - r = pam_get_item(pamh, PAM_USER_PROMPT, (const void **)&prompt); - if (r != PAM_SUCCESS || prompt == NULL) + r = pam_get_item(pamh, PAM_USER_PROMPT, &promptp); + if (r != PAM_SUCCESS || promptp == NULL) prompt = user_prompt; + else + prompt = promptp; } r = pam_prompt(pamh, PAM_PROMPT_ECHO_ON, &resp, "%s", prompt); if (r != PAM_SUCCESS) diff --git a/contrib/openpam/lib/pam_vprompt.c b/contrib/openpam/lib/pam_vprompt.c index ef6ca24..99215df 100644 --- a/contrib/openpam/lib/pam_vprompt.c +++ b/contrib/openpam/lib/pam_vprompt.c @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/lib/pam_vprompt.c#12 $ + * $P4: //depot/projects/openpam/lib/pam_vprompt.c#13 $ */ #include <stdarg.h> @@ -59,13 +59,15 @@ pam_vprompt(pam_handle_t *pamh, struct pam_message msg; const struct pam_message *msgp; struct pam_response *rsp; - struct pam_conv *conv; + const struct pam_conv *conv; + const void *convp; int r; ENTER(); - r = pam_get_item(pamh, PAM_CONV, (const void **)&conv); + r = pam_get_item(pamh, PAM_CONV, &convp); if (r != PAM_SUCCESS) RETURNC(r); + conv = convp; if (conv == NULL || conv->conv == NULL) { openpam_log(PAM_LOG_ERROR, "no conversation function"); RETURNC(PAM_SYSTEM_ERR); |