ptserver: Allow longer foreign user names
authorAndrew Deason <adeason@sinenomine.net>
Fri, 30 Jul 2010 17:03:06 +0000 (12:03 -0500)
committerDerrick Brashear <shadow@dementia.org>
Sat, 31 Jul 2010 02:12:14 +0000 (19:12 -0700)
The ptserver was restricting all names to be less than PR_MAXNAMELEN -
pr_realmNameLen - 1, so that the local realm and a '@' can be safely
appended for foreign user registration. This check is overly
restrictive for foreign users, since the local realm will never be
appended to the user name (it already has the foreign realm name
appended). So, just check for PR_MAXNAMELEN for foreign users.

Original issue reported by Gunnar Krull.

Change-Id: I34c5d908cc2c1b3abe87966115e6ada74c9a93a9
Reviewed-on: http://gerrit.openafs.org/2485
Tested-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

src/ptserver/ptutils.c

index c4315c2..be99ddb 100644 (file)
@@ -191,8 +191,16 @@ CorrectUserName(char *name)
     /* We accept foreign names, so we will deal with '@' later */
     if (strchr(name, ':') || strchr(name, '\n'))
        return 0;
-    if (strlen(name) >= PR_MAXNAMELEN - pr_realmNameLen - 1)
-       return 0;
+    if (strchr(name, '@')) {
+       /* foreign user; we don't need to worry about pr_realmNameLen, since
+        * our local realm name will never be appended to this */
+       if (strlen(name) >= PR_MAXNAMELEN) {
+           return 0;
+       }
+    } else {
+       if (strlen(name) >= PR_MAXNAMELEN - pr_realmNameLen - 1)
+           return 0;
+    }
     return 1;
 }