mirror of
https://github.com/samba-team/samba.git
synced 2025-03-27 22:50:26 +03:00
s3: explicitly pass domain_sid to wbint_LookupRids() (bug #7841)
Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Mon Jun 27 18:21:30 CEST 2011 on sn-devel-104
This commit is contained in:
parent
2ff0d5882f
commit
0a74caa473
@ -164,6 +164,7 @@ interface wbint
|
||||
);
|
||||
|
||||
NTSTATUS wbint_LookupRids(
|
||||
[in] dom_sid *domain_sid,
|
||||
[in] wbint_RidArray *rids,
|
||||
[out,string,charset(UTF8)] char **domain_name,
|
||||
[out] wbint_Principals *names
|
||||
|
@ -198,7 +198,7 @@ static bool wb_lookupsids_next(struct tevent_req *req,
|
||||
}
|
||||
subreq = dcerpc_wbint_LookupRids_send(
|
||||
state, state->ev, dom_child_handle(d->domain),
|
||||
&state->rids, &state->domain_name,
|
||||
&d->sid, &state->rids, &state->domain_name,
|
||||
&state->rid_names);
|
||||
if (tevent_req_nomem(subreq, req)) {
|
||||
return false;
|
||||
|
@ -494,7 +494,7 @@ NTSTATUS _wbint_LookupRids(struct pipes_struct *p, struct wbint_LookupRids *r)
|
||||
}
|
||||
|
||||
status = domain->methods->rids_to_names(
|
||||
domain, talloc_tos(), &domain->sid, r->in.rids->rids,
|
||||
domain, talloc_tos(), r->in.domain_sid, r->in.rids->rids,
|
||||
r->in.rids->num_rids, &domain_name, &names, &types);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
return status;
|
||||
@ -509,7 +509,8 @@ NTSTATUS _wbint_LookupRids(struct pipes_struct *p, struct wbint_LookupRids *r)
|
||||
}
|
||||
|
||||
for (i=0; i<r->in.rids->num_rids; i++) {
|
||||
sid_compose(&result[i].sid, &domain->sid, r->in.rids->rids[i]);
|
||||
sid_compose(&result[i].sid, r->in.domain_sid,
|
||||
r->in.rids->rids[i]);
|
||||
result[i].type = types[i];
|
||||
result[i].name = talloc_move(result, &names[i]);
|
||||
}
|
||||
|
@ -24,6 +24,7 @@
|
||||
|
||||
struct winbindd_lookuprids_state {
|
||||
struct tevent_context *ev;
|
||||
struct dom_sid domain_sid;
|
||||
const char *domain_name;
|
||||
struct wbint_RidArray rids;
|
||||
struct wbint_Principals names;
|
||||
@ -42,7 +43,6 @@ struct tevent_req *winbindd_lookuprids_send(TALLOC_CTX *mem_ctx,
|
||||
struct tevent_req *req, *subreq;
|
||||
struct winbindd_lookuprids_state *state;
|
||||
struct winbindd_domain *domain;
|
||||
struct dom_sid sid;
|
||||
|
||||
req = tevent_req_create(mem_ctx, &state,
|
||||
struct winbindd_lookuprids_state);
|
||||
@ -56,16 +56,16 @@ struct tevent_req *winbindd_lookuprids_send(TALLOC_CTX *mem_ctx,
|
||||
|
||||
DEBUG(3, ("lookuprids (%s)\n", request->data.sid));
|
||||
|
||||
if (!string_to_sid(&sid, request->data.sid)) {
|
||||
if (!string_to_sid(&state->domain_sid, request->data.sid)) {
|
||||
DEBUG(5, ("%s not a SID\n", request->data.sid));
|
||||
tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
|
||||
return tevent_req_post(req, ev);
|
||||
}
|
||||
|
||||
domain = find_lookup_domain_from_sid(&sid);
|
||||
domain = find_lookup_domain_from_sid(&state->domain_sid);
|
||||
if (domain == NULL) {
|
||||
DEBUG(5, ("Domain for sid %s not found\n",
|
||||
sid_string_dbg(&sid)));
|
||||
sid_string_dbg(&state->domain_sid)));
|
||||
tevent_req_nterror(req, NT_STATUS_NO_SUCH_DOMAIN);
|
||||
return tevent_req_post(req, ev);
|
||||
}
|
||||
@ -84,8 +84,8 @@ struct tevent_req *winbindd_lookuprids_send(TALLOC_CTX *mem_ctx,
|
||||
}
|
||||
|
||||
subreq = dcerpc_wbint_LookupRids_send(
|
||||
state, ev, dom_child_handle(domain), &state->rids,
|
||||
&state->domain_name, &state->names);
|
||||
state, ev, dom_child_handle(domain), &state->domain_sid,
|
||||
&state->rids, &state->domain_name, &state->names);
|
||||
if (tevent_req_nomem(subreq, req)) {
|
||||
return tevent_req_post(req, ev);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user