diff options
Diffstat (limited to 'Linux-PAM/modules/pam_access')
-rw-r--r-- | Linux-PAM/modules/pam_access/Makefile.am | 4 | ||||
-rw-r--r-- | Linux-PAM/modules/pam_access/Makefile.in | 7 | ||||
-rw-r--r-- | Linux-PAM/modules/pam_access/pam_access.c | 16 |
3 files changed, 14 insertions, 13 deletions
diff --git a/Linux-PAM/modules/pam_access/Makefile.am b/Linux-PAM/modules/pam_access/Makefile.am index 8641b97c..9b58e81e 100644 --- a/Linux-PAM/modules/pam_access/Makefile.am +++ b/Linux-PAM/modules/pam_access/Makefile.am @@ -15,13 +15,13 @@ secureconfdir = $(SCONFIGDIR) AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ -DPAM_ACCESS_CONFIG=\"$(SCONFIGDIR)/access.conf\" -AM_LDFLAGS = -no-undefined -avoid-version -module \ - -L$(top_builddir)/libpam -lpam @LIBNSL@ +AM_LDFLAGS = -no-undefined -avoid-version -module if HAVE_VERSIONING AM_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map endif securelib_LTLIBRARIES = pam_access.la +pam_access_la_LIBADD = -L$(top_builddir)/libpam -lpam @LIBNSL@ secureconf_DATA = access.conf diff --git a/Linux-PAM/modules/pam_access/Makefile.in b/Linux-PAM/modules/pam_access/Makefile.in index 86303308..9b9febc2 100644 --- a/Linux-PAM/modules/pam_access/Makefile.in +++ b/Linux-PAM/modules/pam_access/Makefile.in @@ -65,7 +65,7 @@ am__installdirs = "$(DESTDIR)$(securelibdir)" "$(DESTDIR)$(man5dir)" \ "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(secureconfdir)" securelibLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(securelib_LTLIBRARIES) -pam_access_la_LIBADD = +pam_access_la_DEPENDENCIES = pam_access_la_SOURCES = pam_access.c pam_access_la_OBJECTS = pam_access.lo DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ @@ -178,6 +178,7 @@ POSUB = @POSUB@ RANLIB = @RANLIB@ SCONFIGDIR = @SCONFIGDIR@ SECUREDIR = @SECUREDIR@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -256,9 +257,9 @@ secureconfdir = $(SCONFIGDIR) AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \ -DPAM_ACCESS_CONFIG=\"$(SCONFIGDIR)/access.conf\" -AM_LDFLAGS = -no-undefined -avoid-version -module \ - -L$(top_builddir)/libpam -lpam @LIBNSL@ $(am__append_1) +AM_LDFLAGS = -no-undefined -avoid-version -module $(am__append_1) securelib_LTLIBRARIES = pam_access.la +pam_access_la_LIBADD = -L$(top_builddir)/libpam -lpam @LIBNSL@ secureconf_DATA = access.conf @ENABLE_REGENERATE_MAN_TRUE@noinst_DATA = README TESTS = tst-pam_access diff --git a/Linux-PAM/modules/pam_access/pam_access.c b/Linux-PAM/modules/pam_access/pam_access.c index 29a1606c..e12bc721 100644 --- a/Linux-PAM/modules/pam_access/pam_access.c +++ b/Linux-PAM/modules/pam_access/pam_access.c @@ -153,7 +153,7 @@ parse_args(pam_handle_t *pamh, struct login_info *loginfo, typedef int match_func (pam_handle_t *, char *, struct login_info *); -static int list_match (pam_handle_t *, char *, struct login_info *, +static int list_match (pam_handle_t *, char *, char *, struct login_info *, match_func *); static int user_match (pam_handle_t *, char *, struct login_info *); static int group_match (pam_handle_t *, const char *, const char *); @@ -376,11 +376,11 @@ login_access (pam_handle_t *pamh, struct login_info *item) if (pam_access_debug) pam_syslog (pamh, LOG_DEBUG, "line %d: %s : %s : %s", lineno, perm, users, froms); - match = list_match(pamh, froms, item, from_match); + match = list_match(pamh, froms, NULL, item, from_match); if (pam_access_debug) pam_syslog (pamh, LOG_DEBUG, "from_match=%d, \"%s\"", match, item->from); - match = match && list_match (pamh, users, item, user_match); + match = match && list_match (pamh, users, NULL, item, user_match); if (pam_access_debug) pam_syslog (pamh, LOG_DEBUG, "user_match=%d, \"%s\"", match, item->user->pw_name); @@ -400,14 +400,14 @@ login_access (pam_handle_t *pamh, struct login_info *item) /* list_match - match an item against a list of tokens with exceptions */ -static int list_match(pam_handle_t *pamh, - char *list, struct login_info *item, match_func *match_fn) +static int +list_match(pam_handle_t *pamh, char *list, char *sptr, + struct login_info *item, match_func *match_fn) { char *tok; int match = NO; - char *sptr; - if (pam_access_debug) + if (pam_access_debug && list != NULL) pam_syslog (pamh, LOG_DEBUG, "list_match: list=%s, item=%s", list, item->user->pw_name); @@ -430,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, sptr, item, match_fn) == NO) + if (tok == 0 || list_match(pamh, NULL, sptr, item, match_fn) == NO) return (match); } return (NO); |