Author: idra
Date: 2007-03-09 16:55:56 +0000 (Fri, 09 Mar 2007)
New Revision: 21776

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

Log:

fix bugs #4438 #4440


Modified:
   branches/SAMBA_3_0/source/utils/net_sam.c
   branches/SAMBA_3_0_25/source/utils/net_sam.c


Changeset:
Modified: branches/SAMBA_3_0/source/utils/net_sam.c
===================================================================
--- branches/SAMBA_3_0/source/utils/net_sam.c   2007-03-09 15:34:12 UTC (rev 
21775)
+++ branches/SAMBA_3_0/source/utils/net_sam.c   2007-03-09 16:55:56 UTC (rev 
21776)
@@ -1043,6 +1043,7 @@
                        d_fprintf(stderr, "Failed to add Domain Users group to 
ldap directory\n");
                }
        } else {
+               domusers_gid = gmap.gid;
                d_printf("found!\n");
        }       
 
@@ -1096,6 +1097,7 @@
                        d_fprintf(stderr, "Failed to add Domain Admins group to 
ldap directory\n");
                }
        } else {
+               domadmins_gid = gmap.gid;
                d_printf("found!\n");
        }
 
@@ -1124,7 +1126,7 @@
                d_printf("Adding the Administrator user.\n");
 
                if (domadmins_gid == -1) {
-                       d_fprintf(stderr, "Can't create Administrtor user, 
Domain Admins group not available!\n");
+                       d_fprintf(stderr, "Can't create Administrator user, 
Domain Admins group not available!\n");
                        goto done;
                }
                if (!winbind_allocate_uid(&uid)) {
@@ -1238,8 +1240,12 @@
                smbldap_set_mod(&mods, LDAP_MOD_ADD, "displayName", 
pwd->pw_name);
                smbldap_set_mod(&mods, LDAP_MOD_ADD, "uidNumber", uidstr);
                smbldap_set_mod(&mods, LDAP_MOD_ADD, "gidNumber", gidstr);
-               smbldap_set_mod(&mods, LDAP_MOD_ADD, "homeDirectory", 
pwd->pw_dir);
-               smbldap_set_mod(&mods, LDAP_MOD_ADD, "loginShell", 
pwd->pw_shell);
+               if ((pwd->pw_dir != NULL) && (pwd->pw_dir[0] != '\0')) {
+                       smbldap_set_mod(&mods, LDAP_MOD_ADD, "homeDirectory", 
pwd->pw_dir);
+               }
+               if ((pwd->pw_shell != NULL) && (pwd->pw_shell[0] != '\0')) {
+                       smbldap_set_mod(&mods, LDAP_MOD_ADD, "loginShell", 
pwd->pw_shell);
+               }
                smbldap_set_mod(&mods, LDAP_MOD_ADD, "sambaSID", 
sid_string_static(&sid));
                smbldap_set_mod(&mods, LDAP_MOD_ADD, "sambaAcctFlags",
                                pdb_encode_acct_ctrl(ACB_NORMAL|ACB_DISABLED,
@@ -1261,7 +1267,7 @@
        pwd = getpwnam_alloc(NULL, lp_guestaccount());
        if (!pwd) {
                d_fprintf(stderr, "Failed to find just created Guest account!\n"
-                                 "   Is nssswitch properly configured?!\n");
+                                 "   Is nss properly configured?!\n");
                goto failed;
        }
 

Modified: branches/SAMBA_3_0_25/source/utils/net_sam.c
===================================================================
--- branches/SAMBA_3_0_25/source/utils/net_sam.c        2007-03-09 15:34:12 UTC 
(rev 21775)
+++ branches/SAMBA_3_0_25/source/utils/net_sam.c        2007-03-09 16:55:56 UTC 
(rev 21776)
@@ -1043,6 +1043,7 @@
                        d_fprintf(stderr, "Failed to add Domain Users group to 
ldap directory\n");
                }
        } else {
+               domusers_gid = gmap.gid;
                d_printf("found!\n");
        }       
 
@@ -1096,6 +1097,7 @@
                        d_fprintf(stderr, "Failed to add Domain Admins group to 
ldap directory\n");
                }
        } else {
+               domadmins_gid = gmap.gid;
                d_printf("found!\n");
        }
 
@@ -1124,7 +1126,7 @@
                d_printf("Adding the Administrator user.\n");
 
                if (domadmins_gid == -1) {
-                       d_fprintf(stderr, "Can't create Administrtor user, 
Domain Admins group not available!\n");
+                       d_fprintf(stderr, "Can't create Administrator user, 
Domain Admins group not available!\n");
                        goto done;
                }
                if (!winbind_allocate_uid(&uid)) {
@@ -1238,8 +1240,12 @@
                smbldap_set_mod(&mods, LDAP_MOD_ADD, "displayName", 
pwd->pw_name);
                smbldap_set_mod(&mods, LDAP_MOD_ADD, "uidNumber", uidstr);
                smbldap_set_mod(&mods, LDAP_MOD_ADD, "gidNumber", gidstr);
-               smbldap_set_mod(&mods, LDAP_MOD_ADD, "homeDirectory", 
pwd->pw_dir);
-               smbldap_set_mod(&mods, LDAP_MOD_ADD, "loginShell", 
pwd->pw_shell);
+               if ((pwd->pw_dir != NULL) && (pwd->pw_dir[0] != '\0')) {
+                       smbldap_set_mod(&mods, LDAP_MOD_ADD, "homeDirectory", 
pwd->pw_dir);
+               }
+               if ((pwd->pw_shell != NULL) && (pwd->pw_shell[0] != '\0')) {
+                       smbldap_set_mod(&mods, LDAP_MOD_ADD, "loginShell", 
pwd->pw_shell);
+               }
                smbldap_set_mod(&mods, LDAP_MOD_ADD, "sambaSID", 
sid_string_static(&sid));
                smbldap_set_mod(&mods, LDAP_MOD_ADD, "sambaAcctFlags",
                                pdb_encode_acct_ctrl(ACB_NORMAL|ACB_DISABLED,
@@ -1261,7 +1267,7 @@
        pwd = getpwnam_alloc(NULL, lp_guestaccount());
        if (!pwd) {
                d_fprintf(stderr, "Failed to find just created Guest account!\n"
-                                 "   Is nssswitch properly configured?!\n");
+                                 "   Is nss properly configured?!\n");
                goto failed;
        }
 

Reply via email to