summaryrefslogtreecommitdiff
path: root/modules/pam_access/pam_access.c
diff options
context:
space:
mode:
authorThorsten Kukuk <kukuk@thkukuk.de>2007-06-25 11:09:32 +0000
committerThorsten Kukuk <kukuk@thkukuk.de>2007-06-25 11:09:32 +0000
commitdd80f758c4772b8bebb2fc3335bf3457ab1eb7ca (patch)
tree0fe639587103fc1b4a961bddff260ae508f5d73c /modules/pam_access/pam_access.c
parentcc4a814d318d7926bb73dec21c99f46f6ef31d3a (diff)
Relevant BUGIDs:
Purpose of commit: bugfix Commit summary: --------------- 2007-06-25 Thorsten Kukuk <kukuk@thkukuk.de> * modules/pam_access/pam_access.c (list_match): Use saveptr of strtok_r result for recursive calls. * xtests/Makefile.am: Add new pam_access test cases. * xtests/pam_access1.c: New test case. * xtests/pam_access2.c: Likewise. * xtests/pam_access3.c: Likewise. * xtests/pam_access4.c: Likewise. * xtests/pam_access1.sh: Wrapper to create user accounts. * xtests/pam_access2.sh: Likewise. * xtests/pam_access3.sh: Likewise. * xtests/pam_access4.sh: Likewise. * xtests/pam_access1.pamd: PAM config file for pam_access tests. * xtests/pam_access2.pamd: Likewise. * xtests/pam_access3.pamd: Likewise. * xtests/pam_access4.pamd: Likewise. * xtests/access.conf: Config file for pam_access tests. * xtests/run-tests.sh: Install access.conf into system.
Diffstat (limited to 'modules/pam_access/pam_access.c')
-rw-r--r--modules/pam_access/pam_access.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/modules/pam_access/pam_access.c b/modules/pam_access/pam_access.c
index 82fdfcc7..29a1606c 100644
--- a/modules/pam_access/pam_access.c
+++ b/modules/pam_access/pam_access.c
@@ -407,6 +407,10 @@ static int list_match(pam_handle_t *pamh,
int match = NO;
char *sptr;
+ if (pam_access_debug)
+ pam_syslog (pamh, LOG_DEBUG,
+ "list_match: list=%s, item=%s", list, item->user->pw_name);
+
/*
* Process tokens one at a time. We have exhausted all possible matches
* when we reach an "EXCEPT" token or the end of the list. If we do find
@@ -426,7 +430,7 @@ static int list_match(pam_handle_t *pamh,
if (match != NO) {
while ((tok = strtok_r(NULL, sep, &sptr)) && strcasecmp(tok, "EXCEPT"))
/* VOID */ ;
- if (tok == 0 || list_match(pamh, (char *) 0, item, match_fn) == NO)
+ if (tok == 0 || list_match(pamh, sptr, item, match_fn) == NO)
return (match);
}
return (NO);
@@ -434,7 +438,7 @@ static int list_match(pam_handle_t *pamh,
/* myhostname - figure out local machine name */
-static char * myhostname(void)
+static char *myhostname(void)
{
static char name[MAXHOSTNAMELEN + 1];