--- Linux-PAM-0.79/modules/pam_time/pam_time.c.orig 2004-09-22 16:49:33 +0400 +++ Linux-PAM-0.79/modules/pam_time/pam_time.c 2005-07-19 20:17:41 +0400 @@ -336,7 +336,11 @@ static boolean is_same(const void *A, co return FALSE; } } - return ( !len ); + /* By this point we know that we didn't treat a * in b as a wildcard. + the only way we got done with the loop is if we consumed every + character in b. Thus the strings are equal if their + lengths are the same otherwise not equal. */ + return (strlen (a) == strlen (b)); } typedef struct {