From e84c7a2e26d206f38bcb94d4d1b6c854cdd4094c Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Wed, 27 Jul 2011 16:40:21 -0400 Subject: s3-rpc_server: Use talloc for pipe_rpc_fns Everything uses talloc in the rpc server nowadays, remove this ancient use of malloc. This also allows us to remove the free fucntion and let talloc handle it properly. Autobuild-User: Simo Sorce Autobuild-Date: Thu Jul 28 17:41:08 CEST 2011 on sn-devel-104 --- source3/rpc_server/rpc_handles.c | 16 ---------------- source3/rpc_server/rpc_ncacn_np.c | 7 ++++--- source3/rpc_server/srv_pipe.c | 6 +++--- 3 files changed, 7 insertions(+), 22 deletions(-) diff --git a/source3/rpc_server/rpc_handles.c b/source3/rpc_server/rpc_handles.c index 19e7655221..87145ca848 100644 --- a/source3/rpc_server/rpc_handles.c +++ b/source3/rpc_server/rpc_handles.c @@ -107,20 +107,6 @@ bool check_open_pipes(void) Close an rpc pipe. ****************************************************************************/ -static void free_pipe_rpc_context_internal(struct pipe_rpc_fns *list) -{ - struct pipe_rpc_fns *tmp = list; - struct pipe_rpc_fns *tmp2; - - while (tmp) { - tmp2 = tmp->next; - SAFE_FREE(tmp); - tmp = tmp2; - } - - return; -} - int close_internal_rpc_pipe_hnd(struct pipes_struct *p) { if (!p) { @@ -131,8 +117,6 @@ int close_internal_rpc_pipe_hnd(struct pipes_struct *p) /* Free the handles database. */ close_policy_by_pipe(p); - free_pipe_rpc_context_internal(p->contexts); - DLIST_REMOVE(InternalPipes, p); return 0; diff --git a/source3/rpc_server/rpc_ncacn_np.c b/source3/rpc_server/rpc_ncacn_np.c index 2ed4a01704..1080a98eb4 100644 --- a/source3/rpc_server/rpc_ncacn_np.c +++ b/source3/rpc_server/rpc_ncacn_np.c @@ -80,10 +80,11 @@ struct pipes_struct *make_internal_rpc_pipe_p(TALLOC_CTX *mem_ctx, return NULL; } - context_fns = SMB_MALLOC_P(struct pipe_rpc_fns); + context_fns = talloc(p, struct pipe_rpc_fns); if (context_fns == NULL) { - DEBUG(0,("malloc() failed!\n")); - return False; + DEBUG(0,("talloc() failed!\n")); + TALLOC_FREE(p); + return NULL; } context_fns->next = context_fns->prev = NULL; diff --git a/source3/rpc_server/srv_pipe.c b/source3/rpc_server/srv_pipe.c index 233dfdf5b2..058f1b8b14 100644 --- a/source3/rpc_server/srv_pipe.c +++ b/source3/rpc_server/srv_pipe.c @@ -356,10 +356,10 @@ static bool check_bind_req(struct pipes_struct *p, return false; } - context_fns = SMB_MALLOC_P(struct pipe_rpc_fns); + context_fns = talloc(p, struct pipe_rpc_fns); if (context_fns == NULL) { - DEBUG(0,("check_bind_req: malloc() failed!\n")); - return False; + DEBUG(0,("check_bind_req: talloc() failed!\n")); + return false; } context_fns->next = context_fns->prev = NULL; -- cgit