diff options
Diffstat (limited to 'source3/nsswitch/winbindd_passdb.c')
-rw-r--r-- | source3/nsswitch/winbindd_passdb.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/source3/nsswitch/winbindd_passdb.c b/source3/nsswitch/winbindd_passdb.c index f0484d35ee..4b22712e0a 100644 --- a/source3/nsswitch/winbindd_passdb.c +++ b/source3/nsswitch/winbindd_passdb.c @@ -57,7 +57,7 @@ add_expanded_sid(const DOM_SID *sid, char **members, int *num_members) enum SID_NAME_USE type; uint32 num_names; - DOM_SID **sid_mem; + DOM_SID *sid_mem; char **names; uint32 *types; @@ -126,7 +126,7 @@ add_expanded_sid(const DOM_SID *sid, char **members, int *num_members) for (i=0; i<num_names; i++) { DEBUG(10, ("Adding group member SID %s\n", - sid_string_static(sid_mem[i]))); + sid_string_static(&sid_mem[i]))); if (types[i] != SID_NAME_USER) { DEBUG(1, ("Hmmm. Member %s of group %s is no user. " @@ -297,24 +297,29 @@ static NTSTATUS query_user(struct winbindd_domain *domain, static NTSTATUS lookup_usergroups(struct winbindd_domain *domain, TALLOC_CTX *mem_ctx, const DOM_SID *user_sid, - uint32 *num_groups, DOM_SID ***user_gids) + uint32 *num_groups, DOM_SID **user_gids) { return NT_STATUS_NO_SUCH_USER; } static NTSTATUS lookup_useraliases(struct winbindd_domain *domain, TALLOC_CTX *mem_ctx, - uint32 num_sids, DOM_SID **sids, - uint32 *num_aliases, uint32 **aliases) + uint32 num_sids, const DOM_SID *sids, + uint32 *num_aliases, uint32 **rids) { - return NT_STATUS_NO_SUCH_USER; + BOOL result; + + result = pdb_enum_alias_memberships(mem_ctx, &domain->sid, + sids, num_sids, rids, num_aliases); + + return result ? NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL; } /* Lookup group membership given a rid. */ static NTSTATUS lookup_groupmem(struct winbindd_domain *domain, TALLOC_CTX *mem_ctx, const DOM_SID *group_sid, uint32 *num_names, - DOM_SID ***sid_mem, char ***names, + DOM_SID **sid_mem, char ***names, uint32 **name_types) { return NT_STATUS_OK; |