]> granicus.if.org Git - linux-pam/commitdiff
Fix the split on @ in the user field. (Red Hat Bug #732081)
authorTomas Mraz <tmraz@fedoraproject.org>
Thu, 25 Aug 2011 13:48:51 +0000 (15:48 +0200)
committerTomas Mraz <tmraz@fedoraproject.org>
Thu, 25 Aug 2011 13:48:51 +0000 (15:48 +0200)
ChangeLog
modules/pam_access/pam_access.c

index 7563098f4063978e9db70a6c15dc8e44aa706f67..b4f1ef81578ff2e78aecaf2a90ec598ea8d31cfe 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-08-25  Tomas Mraz  <tm@t8m.info>
+
+       * modules/pam_access/pam_access.c (user_match): Fix the split
+         on @ in the user field. (Red Hat Bug #732081)
+
 2011-08-23  Tomas Mraz  <tm@t8m.info>
 
        * modules/pam_env/pam_env.c (_pam_parse): Fix missing dereference.
index 0eb1e8c6e1bb7e819273f09ebfa8325d7e976d15..472116c34c1599334cbde459c94f5603a2fb8fe7 100644 (file)
@@ -521,7 +521,10 @@ user_match (pam_handle_t *pamh, char *tok, struct login_info *item)
      * name of the user's primary group.
      */
 
-    if (tok[0] != '@' && (at = strchr(tok + 1, '@')) != 0) {
+    /* Try to split on a pattern (@*[^@]+)(@+.*) */
+    for (at = tok; *at == '@'; ++at);
+
+    if ((at = strchr(at, '@')) != NULL) {
         /* split user@host pattern */
        if (item->hostname == NULL)
            return NO;