--------------------- PatchSet 6712 Date: 2005/07/08 09:23:11 Author: serassio Branch: nt-2_5 Tag: (none) Log: Added support for '/' char as domain separator. Members: helpers/basic_auth/win32_locallogon/NT_auth.c:1.1.4.4->1.1.4.5 helpers/basic_auth/win32_locallogon/valid.c:1.1.4.4->1.1.4.5 Index: squid/helpers/basic_auth/win32_locallogon/NT_auth.c =================================================================== RCS file: /cvsroot/squid-sf//squid/helpers/basic_auth/win32_locallogon/Attic/NT_auth.c,v retrieving revision 1.1.4.4 retrieving revision 1.1.4.5 diff -u -r1.1.4.4 -r1.1.4.5 --- squid/helpers/basic_auth/win32_locallogon/NT_auth.c 25 Apr 2005 14:01:16 -0000 1.1.4.4 +++ squid/helpers/basic_auth/win32_locallogon/NT_auth.c 8 Jul 2005 09:23:11 -0000 1.1.4.5 @@ -1,8 +1,6 @@ /* NT_auth - Version 2.0 - Modified to act as a Squid authenticator module. - Removed all Pike stuff. Returns OK for a successful authentication, or ERR upon error. Guido Serassio, Torino - Italy Index: squid/helpers/basic_auth/win32_locallogon/valid.c =================================================================== RCS file: /cvsroot/squid-sf//squid/helpers/basic_auth/win32_locallogon/Attic/valid.c,v retrieving revision 1.1.4.4 retrieving revision 1.1.4.5 diff -u -r1.1.4.4 -r1.1.4.5 --- squid/helpers/basic_auth/win32_locallogon/valid.c 25 Apr 2005 14:01:17 -0000 1.1.4.4 +++ squid/helpers/basic_auth/win32_locallogon/valid.c 8 Jul 2005 09:23:11 -0000 1.1.4.5 @@ -44,6 +44,7 @@ const char NTV_SERVER_ERROR_MSG[] = "Internal server errror"; const char NTV_GROUP_ERROR_MSG[] = "User not allowed to use this cache"; const char NTV_LOGON_ERROR_MSG[] = "No such user or wrong password"; +const char NTV_VALID_DOMAIN_SEPARATOR[] = "\\/"; /* returns 1 on success, 0 on failure */ int @@ -124,14 +125,20 @@ Valid_User(char *UserName, char *Password, char *Group) { int result = NTV_SERVER_ERROR; + size_t i; char NTDomain[256]; char *domain_qualify; char DomainUser[256]; char User[256]; errormsg = NTV_SERVER_ERROR_MSG; - strcpy(NTDomain, UserName); - if ((domain_qualify = strchr(NTDomain, '\\')) == NULL) { + strncpy(NTDomain, UserName, sizeof(NTDomain)); + + for (i=0; i < strlen(NTV_VALID_DOMAIN_SEPARATOR); i++) { + if ((domain_qualify = strchr(NTDomain, NTV_VALID_DOMAIN_SEPARATOR[i])) != NULL) + break; + } + if (domain_qualify == NULL) { strcpy(User, NTDomain); strcpy(NTDomain, Default_NTDomain); } else {