Submitted By: Alexander E. Patrakov (semzx at newmail dot ru)
Date: 2003-08-13
Initial Package Version: 0.77
Origin: Alexander E. Patrakov
Description: Fix pam_group and pam_time modules.
1) Make pam_group look at the configuration file in the right place
2) Make these modules accept things like ":0" for the tty name, since 
xdm and kdm generate these names.
The patch is not yet submitted to PAM maintainers. Maybe it should go 
into the book.

diff -ur Linux-PAM-0.77.orig/modules/pam_group/Makefile Linux-PAM-0.77/modules/pam_group/Makefile
--- Linux-PAM-0.77.orig/modules/pam_group/Makefile	2000-11-20 04:54:04.000000000 +0500
+++ Linux-PAM-0.77/modules/pam_group/Makefile	2003-02-20 17:32:07.000000000 +0500
@@ -11,7 +11,7 @@
 LOCAL_CONFILE=./group.conf
 INSTALLED_CONFILE=$(SCONFIGD)/group.conf
 
-DEFS=-DDEFAULT_CONF_FILE=\"$(CONFILE)\"
+DEFS=-DDEFAULT_CONF_FILE=\"$(INSTALLED_CONFILE)\"
 CFLAGS += $(DEFS)
 
 MODULE_SIMPLE_INSTALL=bash -f ../install_conf "$(FAKEROOT)" "$(SCONFIGD)" "$(INSTALLED_CONFILE)" "$(TITLE)" "$(LOCAL_CONFILE)"
diff -ur Linux-PAM-0.77.orig/modules/pam_group/pam_group.c Linux-PAM-0.77/modules/pam_group/pam_group.c
--- Linux-PAM-0.77.orig/modules/pam_group/pam_group.c	2001-05-08 11:02:50.000000000 +0600
+++ Linux-PAM-0.77/modules/pam_group/pam_group.c	2003-02-20 17:32:44.000000000 +0500
@@ -254,7 +254,7 @@
 
 	  default:
 	       if (isalpha(c) || c == '*' || isdigit(c) || c == '_'
-		    || c == '-' || c == '.' || c == '/') {
+		    || c == '-' || c == '.' || c == '/' || c == ':') {
 		    token = 1;
 	       } else if (token) {
 		    --to;
@@ -285,7 +285,7 @@
 	  if (next == VAL) {
 	       if (c == '!')
 		    not = !not;
-	       else if (isalpha(c) || c == '*') {
+	       else if (isalpha(c) || c == '*' || c == ':' || isdigit(c)) {
 		    right = not ^ agrees(me, x+at, l, rule);
 		    if (oper == AND)
 			 left &= right;
diff -ur Linux-PAM-0.77.orig/modules/pam_time/pam_time.c Linux-PAM-0.77/modules/pam_time/pam_time.c
--- Linux-PAM-0.77.orig/modules/pam_time/pam_time.c	2001-05-08 11:02:50.000000000 +0600
+++ Linux-PAM-0.77/modules/pam_time/pam_time.c	2003-02-20 17:33:54.000000000 +0500
@@ -256,7 +256,7 @@
 
 	  default:
 	       if (isalpha(c) || c == '*' || isdigit(c) || c == '_'
-		    || c == '-' || c == '.' || c == '/') {
+		    || c == '-' || c == '.' || c == '/' || c == ':') {
 		    token = 1;
 	       } else if (token) {
 		    --to;
@@ -287,7 +287,7 @@
 	  if (next == VAL) {
 	       if (c == '!')
 		    not = !not;
-	       else if (isalpha(c) || c == '*') {
+	       else if (isalpha(c) || c == '*' || c == ':' || isdigit(c)) {
 		    right = not ^ agrees(me, x+at, l, rule);
 		    if (oper == AND)
 			 left &= right;
