From: Andrew Tridgell Date: Fri, 7 Aug 2009 07:23:52 +0000 (+1000) Subject: fixed another ambiguous talloc call X-Git-Tag: talloc-2.0.0~464^2~31 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7c2025610c7dfce228f682f2f204972b0264cf72;p=thirdparty%2Fsamba.git fixed another ambiguous talloc call During the creation of the 3 RPC pipes in winbind we try to steal the RPC binding structure to be a child of the pipe once the pipe is established. This fails with a talloc warning as the rpc connection code already holds a reference to the binding. The fix is to use talloc_reparent() instead. --- diff --git a/source4/winbind/wb_init_domain.c b/source4/winbind/wb_init_domain.c index 676746681ff..1f560c17ce3 100644 --- a/source4/winbind/wb_init_domain.c +++ b/source4/winbind/wb_init_domain.c @@ -211,7 +211,7 @@ static void init_domain_recv_netlogonpipe(struct composite_context *ctx) if (!composite_is_ok(state->ctx)) { return; } - talloc_steal(state->domain->netlogon_pipe, state->domain->netlogon_binding); + talloc_reparent(state, state->domain->netlogon_pipe, state->domain->netlogon_binding); state->domain->lsa_binding = init_domain_binding(state, &ndr_table_lsarpc); @@ -286,7 +286,7 @@ static void init_domain_recv_lsa_pipe(struct composite_context *ctx) if (!composite_is_ok(state->ctx)) return; talloc_steal(state->domain->libnet_ctx, state->domain->libnet_ctx->lsa.pipe); - talloc_steal(state->domain->libnet_ctx->lsa.pipe, state->domain->lsa_binding); + talloc_reparent(state, state->domain->libnet_ctx->lsa.pipe, state->domain->lsa_binding); state->domain->libnet_ctx->lsa.access_mask = SEC_FLAG_MAXIMUM_ALLOWED; state->domain->libnet_ctx->lsa.name = state->domain->info->name; @@ -399,7 +399,7 @@ static void init_domain_recv_samr(struct composite_context *ctx) &state->domain->libnet_ctx->samr.handle); if (!composite_is_ok(state->ctx)) return; - talloc_steal(state->domain->libnet_ctx->samr.pipe, state->domain->samr_binding); + talloc_reparent(state, state->domain->libnet_ctx->samr.pipe, state->domain->samr_binding); state->domain->libnet_ctx->samr.access_mask = SEC_FLAG_MAXIMUM_ALLOWED; state->domain->libnet_ctx->samr.name = state->domain->info->name; state->domain->libnet_ctx->samr.sid = dom_sid_dup(