diff options
-rw-r--r-- | source3/winbindd/winbindd_ads.c | 6 | ||||
-rw-r--r-- | source3/winbindd/winbindd_util.c | 9 |
2 files changed, 7 insertions, 8 deletions
diff --git a/source3/winbindd/winbindd_ads.c b/source3/winbindd/winbindd_ads.c index a9df61d5f4..b5fe08093c 100644 --- a/source3/winbindd/winbindd_ads.c +++ b/source3/winbindd/winbindd_ads.c @@ -1379,9 +1379,13 @@ static NTSTATUS trusted_domains(struct winbindd_domain *domain, DEBUG(10,("trusted_domains: Skipping external trusted domain " "%s because it is outside of our primary domain\n", trusts.array[i].netbios_name)); - continue; + continue; } + /* We must check that the SID of each trusted domain + * was returned to work around a bug in Windows: + * http://support.microsoft.com/kb/922832 */ + (*names)[ret_count] = CONST_DISCARD(char *, trusts.array[i].netbios_name); (*alt_names)[ret_count] = CONST_DISCARD(char *, trusts.array[i].dns_name); if (trusts.array[i].sid) { diff --git a/source3/winbindd/winbindd_util.c b/source3/winbindd/winbindd_util.c index 5c2ebab836..ff8c101b37 100644 --- a/source3/winbindd/winbindd_util.c +++ b/source3/winbindd/winbindd_util.c @@ -322,13 +322,8 @@ static void trustdom_recv(void *private_data, bool success) *q = '\0'; if (!string_to_sid(&sid, sidstr)) { - /* Allow NULL sid for sibling domains */ - if ( strcmp(sidstr,"S-0-0") == 0) { - sid_copy( &sid, &global_sid_NULL); - } else { - DEBUG(0, ("Got invalid trustdom response\n")); - break; - } + DEBUG(0, ("Got invalid trustdom response\n")); + break; } /* use the real alt_name if we have one, else pass in NULL */ |