diff options
author | Stefan Metzmacher <metze@samba.org> | 2014-01-14 12:11:17 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2014-01-16 16:22:52 +0100 |
commit | 124a89698b9eb6d77405ba3ee51c52dad32f9f95 (patch) | |
tree | c89020f5072a60f76604054430d4f628d4e7f40e /source4/winbind | |
parent | ad14fb95453a9c3a0902047520bb460eca181c31 (diff) | |
download | samba-124a89698b9eb6d77405ba3ee51c52dad32f9f95.tar.gz |
s4:winbind: let wb_samr_userdomgroups_send() take tevent_context/dcerpc_binding_handle
This avoids usage/dereferencing 'struct dcerpc_pipe'.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
Diffstat (limited to 'source4/winbind')
-rw-r--r-- | source4/winbind/wb_async_helpers.c | 17 | ||||
-rw-r--r-- | source4/winbind/wb_cmd_userdomgroups.c | 3 |
2 files changed, 11 insertions, 9 deletions
diff --git a/source4/winbind/wb_async_helpers.c b/source4/winbind/wb_async_helpers.c index 4ea528bf0f5..5f0455a50e4 100644 --- a/source4/winbind/wb_async_helpers.c +++ b/source4/winbind/wb_async_helpers.c @@ -345,7 +345,7 @@ NTSTATUS wb_lsa_lookupnames_recv(struct composite_context *c, } struct samr_getuserdomgroups_state { struct composite_context *ctx; - struct dcerpc_pipe *samr_pipe; + struct dcerpc_binding_handle *samr_binding; uint32_t num_rids; uint32_t *rids; @@ -363,7 +363,8 @@ static void samr_usergroups_recv_groups(struct tevent_req *subreq); static void samr_usergroups_recv_close(struct tevent_req *subreq); struct composite_context *wb_samr_userdomgroups_send(TALLOC_CTX *mem_ctx, - struct dcerpc_pipe *samr_pipe, + struct tevent_context *ev, + struct dcerpc_binding_handle *samr_binding, struct policy_handle *domain_handle, uint32_t rid) { @@ -371,7 +372,7 @@ struct composite_context *wb_samr_userdomgroups_send(TALLOC_CTX *mem_ctx, struct samr_getuserdomgroups_state *state; struct tevent_req *subreq; - result = composite_create(mem_ctx, samr_pipe->conn->event_ctx); + result = composite_create(mem_ctx, ev); if (result == NULL) goto failed; state = talloc(result, struct samr_getuserdomgroups_state); @@ -379,7 +380,7 @@ struct composite_context *wb_samr_userdomgroups_send(TALLOC_CTX *mem_ctx, result->private_data = state; state->ctx = result; - state->samr_pipe = samr_pipe; + state->samr_binding = samr_binding; state->user_handle = talloc(state, struct policy_handle); if (state->user_handle == NULL) goto failed; @@ -390,8 +391,8 @@ struct composite_context *wb_samr_userdomgroups_send(TALLOC_CTX *mem_ctx, state->o.out.user_handle = state->user_handle; subreq = dcerpc_samr_OpenUser_r_send(state, - result->event_ctx, - state->samr_pipe->binding_handle, + state->ctx->event_ctx, + state->samr_binding, &state->o); if (subreq == NULL) goto failed; tevent_req_set_callback(subreq, samr_usergroups_recv_open, state); @@ -420,7 +421,7 @@ static void samr_usergroups_recv_open(struct tevent_req *subreq) subreq = dcerpc_samr_GetGroupsForUser_r_send(state, state->ctx->event_ctx, - state->samr_pipe->binding_handle, + state->samr_binding, &state->g); if (composite_nomem(subreq, state->ctx)) return; tevent_req_set_callback(subreq, samr_usergroups_recv_groups, state); @@ -443,7 +444,7 @@ static void samr_usergroups_recv_groups(struct tevent_req *subreq) subreq = dcerpc_samr_Close_r_send(state, state->ctx->event_ctx, - state->samr_pipe->binding_handle, + state->samr_binding, &state->c); if (composite_nomem(subreq, state->ctx)) return; tevent_req_set_callback(subreq, samr_usergroups_recv_close, state); diff --git a/source4/winbind/wb_cmd_userdomgroups.c b/source4/winbind/wb_cmd_userdomgroups.c index c1258a94d27..ee53a44bf6e 100644 --- a/source4/winbind/wb_cmd_userdomgroups.c +++ b/source4/winbind/wb_cmd_userdomgroups.c @@ -81,7 +81,8 @@ static void userdomgroups_recv_domain(struct composite_context *ctx) state->ctx->status = wb_sid2domain_recv(ctx, &domain); if (!composite_is_ok(state->ctx)) return; - ctx = wb_samr_userdomgroups_send(state, domain->libnet_ctx->samr.pipe, + ctx = wb_samr_userdomgroups_send(state, state->ctx->event_ctx, + domain->libnet_ctx->samr.samr_handle, &domain->libnet_ctx->samr.handle, state->user_rid); composite_continue(state->ctx, ctx, userdomgroups_recv_rids, state); |