From: Thorsten Kukuk Date: Thu, 27 Sep 2007 11:21:11 +0000 (+0000) Subject: Relevant BUGIDs: Red Hat #295151 X-Git-Tag: Linux-PAM-0_99_9_0~7 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2526591274d04d584584ea7ae9a96042477f1c74;p=linux-pam Relevant BUGIDs: Red Hat #295151 Purpose of commit: testcase Commit summary: --------------- 2007-09-27 Thorsten Kukuk * xtests/tst-pam_succeed_if1.c: New test case for https://bugzilla.redhat.com/show_bug.cgi?id=295151 * xtests/tst-pam_succeed_if1.sh: Script to run test case. * xtests/tst-pam_succeed_if1.pamd: Config for test case. * xtests/Makefile.am: Add tst-pam_succeed_if1 test case. --- diff --git a/ChangeLog b/ChangeLog index 2d82849f..bb8e2803 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2007-09-27 Thorsten Kukuk + * xtests/tst-pam_succeed_if1.c: New test case for + https://bugzilla.redhat.com/show_bug.cgi?id=295151 + * xtests/tst-pam_succeed_if1.sh: Script to run test case. + * xtests/tst-pam_succeed_if1.pamd: Config for test case. + * xtests/Makefile.am: Add tst-pam_succeed_if1 test case. + * xtests/run-xtests.sh: Add support to skip tests. * xtests/tst-pam_limits1.c: Skip test if RLIMIT_NICE is not defined. diff --git a/modules/pam_succeed_if/pam_succeed_if.c b/modules/pam_succeed_if/pam_succeed_if.c index 4f33ba2e..06cb5d6a 100644 --- a/modules/pam_succeed_if/pam_succeed_if.c +++ b/modules/pam_succeed_if/pam_succeed_if.c @@ -191,13 +191,19 @@ static int evaluate_inlist(const char *left, const char *right) { char *p; - if ((p=strstr(right, left)) == NULL) - return PAM_AUTH_ERR; - if (p == right || *(p-1) == ':') { /* ':' is a list separator */ - p += strlen(left); - if (*p == '\0' || *p == ':') { - return PAM_SUCCESS; + /* Don't care about left containing ':'. */ + while ((p=strstr(right, left)) != NULL) { + if (p == right || *(p-1) == ':') { /* ':' is a list separator */ + p += strlen(left); + if (*p == '\0' || *p == ':') { + return PAM_SUCCESS; + } } + right = strchr(p, ':'); + if (right == NULL) + break; + else + ++right; } return PAM_AUTH_ERR; }