Author: jerry
Date: 2006-07-25 21:48:13 +0000 (Tue, 25 Jul 2006)
New Revision: 17246

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=17246

Log:
BUG 3964: lower case username prior to getpwnam() call in smbpasswd
Modified:
   branches/SAMBA_3_0/source/passdb/pdb_smbpasswd.c
   branches/SAMBA_3_0_23/source/passdb/pdb_smbpasswd.c


Changeset:
Modified: branches/SAMBA_3_0/source/passdb/pdb_smbpasswd.c
===================================================================
--- branches/SAMBA_3_0/source/passdb/pdb_smbpasswd.c    2006-07-25 21:33:13 UTC 
(rev 17245)
+++ branches/SAMBA_3_0/source/passdb/pdb_smbpasswd.c    2006-07-25 21:48:13 UTC 
(rev 17246)
@@ -1192,6 +1192,7 @@
                              struct samu *sam_pass, const struct smb_passwd 
*pw_buf)
 {
        struct passwd *pwfile;
+       fstring unix_username;
        
        if ( !sam_pass ) {
                DEBUG(5,("build_sam_account: struct samu is NULL\n"));
@@ -1199,8 +1200,11 @@
        }
 
        /* verify the user account exists */
+
+       fstrcpy( unix_username, pw_buf->smb_name );
+       strlower_m( unix_username );
                        
-       if ( !(pwfile = getpwnam_alloc(NULL, pw_buf->smb_name)) ) {
+       if ( !(pwfile = getpwnam_alloc(NULL, unix_username )) ) {
                DEBUG(0,("build_sam_account: smbpasswd database is corrupt!  
username %s with uid "
                "%u is not in unix passwd database!\n", pw_buf->smb_name, 
pw_buf->smb_userid));
                        return False;

Modified: branches/SAMBA_3_0_23/source/passdb/pdb_smbpasswd.c
===================================================================
--- branches/SAMBA_3_0_23/source/passdb/pdb_smbpasswd.c 2006-07-25 21:33:13 UTC 
(rev 17245)
+++ branches/SAMBA_3_0_23/source/passdb/pdb_smbpasswd.c 2006-07-25 21:48:13 UTC 
(rev 17246)
@@ -1189,6 +1189,7 @@
                              struct samu *sam_pass, const struct smb_passwd 
*pw_buf)
 {
        struct passwd *pwfile;
+       fstring unix_username;
        
        if ( !sam_pass ) {
                DEBUG(5,("build_sam_account: struct samu is NULL\n"));
@@ -1196,8 +1197,11 @@
        }
 
        /* verify the user account exists */
+
+       fstrcpy( unix_username, pw_buf->smb_name );
+       strlower_m( unix_username );
                        
-       if ( !(pwfile = getpwnam_alloc(NULL, pw_buf->smb_name)) ) {
+       if ( !(pwfile = getpwnam_alloc(NULL, unix_username )) ) {
                DEBUG(0,("build_sam_account: smbpasswd database is corrupt!  
username %s with uid "
                "%u is not in unix passwd database!\n", pw_buf->smb_name, 
pw_buf->smb_userid));
                        return False;

Reply via email to