diff options
author | Volker Lendecke <vlendec@samba.org> | 2005-12-08 19:34:22 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 11:05:46 -0500 |
commit | 6a92f418ea36eb12b247e11656b3e8bbe367f394 (patch) | |
tree | e640452353a1bbe4cb41f3e518e948c6d6e69204 /source3/nsswitch | |
parent | 5ffc3b18ef31bb96d750b1bceab4fa7f00eb2852 (diff) | |
download | samba-6a92f418ea36eb12b247e11656b3e8bbe367f394.tar.gz samba-6a92f418ea36eb12b247e11656b3e8bbe367f394.tar.bz2 samba-6a92f418ea36eb12b247e11656b3e8bbe367f394.zip |
r12133: Fix an uninitialized variable in new code in rpc_server/srv_samr_nt.c.
Fix winbind_lookup_name for the local domain, ie for aliases on a member
server.
Volker
(This used to be commit 4ba50c823e8d61f87ab5627f15e826e73e45ffcc)
Diffstat (limited to 'source3/nsswitch')
-rw-r--r-- | source3/nsswitch/winbindd_util.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/source3/nsswitch/winbindd_util.c b/source3/nsswitch/winbindd_util.c index d934bc2927..efae956884 100644 --- a/source3/nsswitch/winbindd_util.c +++ b/source3/nsswitch/winbindd_util.c @@ -90,6 +90,14 @@ static BOOL is_internal_domain(const DOM_SID *sid) return (sid_check_is_domain(sid) || sid_check_is_builtin(sid)); } +static BOOL is_in_internal_domain(const DOM_SID *sid) +{ + if (sid == NULL) + return False; + + return (sid_check_is_in_our_domain(sid) || sid_check_is_in_builtin(sid)); +} + /* Add a trusted domain to our list of domains */ static struct winbindd_domain *add_trusted_domain(const char *domain_name, const char *alt_name, @@ -648,12 +656,18 @@ struct winbindd_domain *find_lookup_domain_from_sid(const DOM_SID *sid) * one to contact the external DC's. On member servers the internal * domains are different: These are part of the local SAM. */ - if (IS_DC || is_internal_domain(sid)) + DEBUG(10, ("find_lookup_domain_from_sid(%s)\n", + sid_string_static(sid))); + + if (IS_DC || is_internal_domain(sid) || is_in_internal_domain(sid)) { + DEBUG(10, ("calling find_domain_from_sid\n")); return find_domain_from_sid(sid); + } /* On a member server a query for SID or name can always go to our * primary DC. */ + DEBUG(10, ("calling find_our_domain\n")); return find_our_domain(); } |