summaryrefslogtreecommitdiffstats
path: root/contrib/openpam/lib
diff options
context:
space:
mode:
authordes <des@FreeBSD.org>2004-02-10 10:11:23 +0000
committerdes <des@FreeBSD.org>2004-02-10 10:11:23 +0000
commite7b72507645a81484339e78353b4dff6e8f85102 (patch)
treeade6fe7568d93ce36594df493d1763a60e14e818 /contrib/openpam/lib
parent0ac9b614f9f226bd46f9d2f378dba4a0a2ecb797 (diff)
downloadFreeBSD-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.c7
-rw-r--r--contrib/openpam/lib/openpam_restore_cred.c8
-rw-r--r--contrib/openpam/lib/pam_get_authtok.c16
-rw-r--r--contrib/openpam/lib/pam_get_data.c10
-rw-r--r--contrib/openpam/lib/pam_get_user.c9
-rw-r--r--contrib/openpam/lib/pam_vprompt.c8
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);
OpenPOWER on IntegriCloud