run krb5 logins through the username map if the winbindd lookup fails; bug 698
authorGerald Carter <jerry@samba.org>
Thu, 6 Nov 2003 17:28:44 +0000 (17:28 +0000)
committerGerald Carter <jerry@samba.org>
Thu, 6 Nov 2003 17:28:44 +0000 (17:28 +0000)
source/auth/auth_util.c

index 71634f08ed84666af4c5dfe367837064a060131c..dd0c0b02dde0e53a3a7eecee9916fa2a35646c4d 100644 (file)
@@ -952,14 +952,16 @@ static NTSTATUS fill_sam_account(TALLOC_CTX *mem_ctx,
 }
 
 /****************************************************************************
- Wrapper to allow the getpwnam() call to styrip the domain name and 
- try again in case a local UNIX user is already there.
+ Wrapper to allow the getpwnam() call to strip the domain name and 
+ try again in case a local UNIX user is already there.  Also run through 
+ the username if we fallback to the username only.
  ****************************************************************************/
  
 struct passwd *smb_getpwnam( char *domuser )
 {
        struct passwd *pw;
        char *p;
+       fstring mapped_username;
 
        pw = Get_Pwnam( domuser );
        if ( pw )
@@ -969,8 +971,11 @@ struct passwd *smb_getpwnam( char *domuser )
 
        p = strchr( domuser, *lp_winbind_separator() );
 
-       if ( p )
-               return Get_Pwnam(p+1);
+       if ( p ) {
+               fstrcpy( mapped_username, p );
+               map_username( mapped_username );        
+               return Get_Pwnam(mapped_username);
+       }
 
        return NULL;
 }