r316: Fix split_domain_name. This defaulted to get_myname() instead of
authorVolker Lendecke <vlendec@samba.org>
Wed, 21 Apr 2004 15:04:05 +0000 (15:04 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 15:51:18 +0000 (10:51 -0500)
get_global_sam_name().

Error case: Adding a domain user to a XP local group did a lsalookupname on
the user without domain prefix, and this then failed.

Jerry: This is a must-fix before 3.0.3.

Volker
(This used to be commit f35e353454b6825da1de138a3f0d8106787e938b)

source3/lib/util_sid.c
source3/passdb/passdb.c

index e4043c4e9278748875c2597b8f6d6b760c835cbc..6b27fc84ddb31604dcb73b78ba1b996e0db28c21 100644 (file)
@@ -174,6 +174,19 @@ NT_USER_TOKEN *get_system_token(void)
        return &system_token;
 }
 
+/******************************************************************
+ get the default domain/netbios name to be used when dealing 
+ with our passdb list of accounts
+******************************************************************/
+
+const char *get_global_sam_name(void) 
+{
+       if ((lp_server_role() == ROLE_DOMAIN_PDC) || (lp_server_role() == ROLE_DOMAIN_BDC)) {
+               return lp_workgroup();
+       }
+       return global_myname();
+}
+
 /**************************************************************************
  Splits a name of format \DOMAIN\name or name into its two components.
  Sets the DOMAIN name to global_myname() if it has not been specified.
@@ -201,14 +214,7 @@ void split_domain_name(const char *fullname, char *domain, char *name)
                fstrcpy(domain, full_name);
                fstrcpy(name, p+1);
        } else {
-               if(!lp_domain_logons()) {
-                       fstrcpy(domain, global_myname());
-                       fstrcpy(name, full_name);
-               } else {
-                       fstrcpy(domain, lp_workgroup());
-                       fstrcpy(name, full_name);
-               }
-               fstrcpy(domain, global_myname());
+               fstrcpy(domain, get_global_sam_name());
                fstrcpy(name, full_name);
        }
 
index 04e41b79707ac7276cde80ef16b26f6cebd28257..7ccb35c3f4b17428c3d9bbf7d61edb58cc7c651d 100644 (file)
@@ -46,19 +46,6 @@ const char *get_default_sam_name(void)
        return lp_workgroup();
 }
 
-/******************************************************************
- get the default domain/netbios name to be used when dealing 
- with our passdb list of accounts
-******************************************************************/
-
-const char *get_global_sam_name(void) 
-{
-       if ((lp_server_role() == ROLE_DOMAIN_PDC) || (lp_server_role() == ROLE_DOMAIN_BDC)) {
-               return lp_workgroup();
-       }
-       return global_myname();
-}
-
 /************************************************************
  Fill the SAM_ACCOUNT with default values.
  ***********************************************************/