From ebf36d27c66f18d8fa88ec8f7cacec3ef0c311d7 Mon Sep 17 00:00:00 2001 From: Andrew Deason Date: Fri, 30 Jul 2010 12:03:06 -0500 Subject: [PATCH] ptserver: Allow longer foreign user names 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 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear --- src/ptserver/ptutils.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/ptserver/ptutils.c b/src/ptserver/ptutils.c index c4315c243..be99ddbc1 100644 --- a/src/ptserver/ptutils.c +++ b/src/ptserver/ptutils.c @@ -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; } -- 2.39.5