From 4ad0397d8afdd6bec609506f3736f8567afe7564 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Fri, 23 Oct 2009 14:27:00 +1100 Subject: s4-ldbwrap: added re-use of ldb contexts in ldb_wrap_connect() This allows us to reuse a ldb context if it is open twice, instead of going through the expensive process of a full ldb open. We can reuse it if all of the parameters are the same. The change relies on callers using talloc_unlink() or free of a parent to close a ldb context. --- source4/rpc_server/netlogon/dcerpc_netlogon.c | 4 ++-- source4/rpc_server/samr/dcesrv_samr.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'source4/rpc_server') diff --git a/source4/rpc_server/netlogon/dcerpc_netlogon.c b/source4/rpc_server/netlogon/dcerpc_netlogon.c index c3cdfb1581..d59cb6fb82 100644 --- a/source4/rpc_server/netlogon/dcerpc_netlogon.c +++ b/source4/rpc_server/netlogon/dcerpc_netlogon.c @@ -256,7 +256,7 @@ static NTSTATUS dcesrv_netr_ServerAuthenticate3(struct dcesrv_call_state *dce_ca } nt_status = schannel_store_session_key_ldb(schannel_ldb, mem_ctx, creds); - talloc_free(schannel_ldb); + talloc_unlink(mem_ctx, schannel_ldb); return nt_status; } @@ -343,7 +343,7 @@ static NTSTATUS dcesrv_netr_creds_server_step_check(struct dcesrv_call_state *dc schannel_in_use, received_authenticator, return_authenticator, creds_out); - talloc_free(ldb); + talloc_unlink(mem_ctx, ldb); return nt_status; } diff --git a/source4/rpc_server/samr/dcesrv_samr.c b/source4/rpc_server/samr/dcesrv_samr.c index f4ada2c7c7..08f1471665 100644 --- a/source4/rpc_server/samr/dcesrv_samr.c +++ b/source4/rpc_server/samr/dcesrv_samr.c @@ -4205,7 +4205,7 @@ static NTSTATUS dcesrv_samr_GetDomPwInfo(struct dcesrv_call_state *dce_call, TAL "pwdProperties", 1); talloc_free(msgs); - talloc_free(sam_ctx); + talloc_unlink(mem_ctx, sam_ctx); return NT_STATUS_OK; } -- cgit