aboutsummaryrefslogtreecommitdiff
path: root/libpam/pam_env.c
diff options
context:
space:
mode:
Diffstat (limited to 'libpam/pam_env.c')
-rw-r--r--libpam/pam_env.c33
1 files changed, 20 insertions, 13 deletions
diff --git a/libpam/pam_env.c b/libpam/pam_env.c
index bfeb57ab..2b3e3953 100644
--- a/libpam/pam_env.c
+++ b/libpam/pam_env.c
@@ -14,6 +14,7 @@
#include "pam_inline.h"
#include <string.h>
+#include <stdint.h>
#include <stdlib.h>
#ifdef sunos
@@ -33,7 +34,12 @@ static void _pam_dump_env(pam_handle_t *pamh)
, pamh->env->requested, pamh->env->entries));
for (i=0; i<pamh->env->requested; ++i) {
- _pam_output_debug(">%-3d [%9p]:[%s]"
+ _pam_output_debug(
+#if UINTPTR_MAX == UINT32_MAX
+ ">%-3d [%10p]:[%s]"
+#else
+ ">%-3d [%18p]:[%s]"
+#endif
, i, pamh->env->list[i], pamh->env->list[i]);
}
_pam_output_debug("*NOTE* the last item should be (nil)");
@@ -50,13 +56,13 @@ int _pam_make_env(pam_handle_t *pamh)
{
D(("called."));
- IF_NO_PAMH("_pam_make_env", pamh, PAM_ABORT);
+ IF_NO_PAMH(pamh, PAM_ABORT);
/*
* get structure memory
*/
- pamh->env = (struct pam_environ *) malloc(sizeof(struct pam_environ));
+ pamh->env = malloc(sizeof(struct pam_environ));
if (pamh->env == NULL) {
pam_syslog(pamh, LOG_CRIT, "_pam_make_env: out of memory");
return PAM_BUF_ERR;
@@ -66,7 +72,7 @@ int _pam_make_env(pam_handle_t *pamh)
* get list memory
*/
- pamh->env->list = (char **)calloc( PAM_ENV_CHUNK, sizeof(char *) );
+ pamh->env->list = calloc( PAM_ENV_CHUNK, sizeof(char *) );
if (pamh->env->list == NULL) {
pam_syslog(pamh, LOG_CRIT, "_pam_make_env: no memory for list");
_pam_drop(pamh->env);
@@ -93,7 +99,7 @@ int _pam_make_env(pam_handle_t *pamh)
void _pam_drop_env(pam_handle_t *pamh)
{
D(("called."));
- IF_NO_PAMH("_pam_make_env", pamh, /* nothing to return */);
+ IF_NO_PAMH(pamh, /* nothing to return */);
if (pamh->env != NULL) {
int i;
@@ -120,7 +126,7 @@ void _pam_drop_env(pam_handle_t *pamh)
*/
static int _pam_search_env(const struct pam_environ *env
- , const char *name_value, int length)
+ , const char *name_value, size_t length)
{
int i;
@@ -152,10 +158,11 @@ static int _pam_search_env(const struct pam_environ *env
int pam_putenv(pam_handle_t *pamh, const char *name_value)
{
- int l2eq, item, retval;
+ size_t l2eq;
+ int item, retval;
D(("called."));
- IF_NO_PAMH("pam_putenv", pamh, PAM_ABORT);
+ IF_NO_PAMH(pamh, PAM_ABORT);
if (name_value == NULL) {
pam_syslog(pamh, LOG_ERR, "pam_putenv: no variable indicated");
@@ -167,7 +174,7 @@ int pam_putenv(pam_handle_t *pamh, const char *name_value)
*/
for (l2eq=0; name_value[l2eq] && name_value[l2eq] != '='; ++l2eq);
- if (l2eq <= 0) {
+ if (l2eq == 0) {
pam_syslog(pamh, LOG_ERR, "pam_putenv: bad variable");
return PAM_BAD_ITEM;
}
@@ -265,7 +272,7 @@ int pam_putenv(pam_handle_t *pamh, const char *name_value)
pam_overwrite_string(pamh->env->list[item]);
_pam_drop(pamh->env->list[item]);
--(pamh->env->requested);
- D(("mmove: item[%d]+%d -> item[%d]"
+ D(("memmove: item[%d]+%d -> item[%d]"
, item+1, ( pamh->env->requested - item ), item));
(void) memmove(&pamh->env->list[item], &pamh->env->list[item+1]
, ( pamh->env->requested - item )*sizeof(char *) );
@@ -288,7 +295,7 @@ const char *pam_getenv(pam_handle_t *pamh, const char *name)
int item;
D(("called."));
- IF_NO_PAMH("pam_getenv", pamh, NULL);
+ IF_NO_PAMH(pamh, NULL);
if (name == NULL) {
pam_syslog(pamh, LOG_ERR, "pam_getenv: no variable indicated");
@@ -326,7 +333,7 @@ static char **_copy_env(pam_handle_t *pamh)
D(("now get some memory for dump"));
/* allocate some memory for this (plus the null tail-pointer) */
- dump = (char **) calloc(i, sizeof(char *));
+ dump = calloc(i, sizeof(char *));
D(("dump = %p", dump));
if (dump == NULL) {
return NULL;
@@ -361,7 +368,7 @@ char **pam_getenvlist(pam_handle_t *pamh)
int i;
D(("called."));
- IF_NO_PAMH("pam_getenvlist", pamh, NULL);
+ IF_NO_PAMH(pamh, NULL);
if (pamh->env == NULL || pamh->env->list == NULL) {
pam_syslog(pamh, LOG_ERR, "pam_getenvlist: no env%s found",