From 1239b92c73a803c5cb517925523a2936df51a232 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 22 Feb 2001 03:38:48 +0000 Subject: make sure we don't free non-allocated data (This used to be commit 4a620f7037378dc042b6388ede6356c6db5d58fb) --- source3/libsmb/clisecdesc.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'source3/libsmb/clisecdesc.c') diff --git a/source3/libsmb/clisecdesc.c b/source3/libsmb/clisecdesc.c index d53b3073b2..59d8bdcc71 100644 --- a/source3/libsmb/clisecdesc.c +++ b/source3/libsmb/clisecdesc.c @@ -33,7 +33,7 @@ SEC_DESC *cli_query_secdesc(struct cli_state *cli,int fd) char param[8]; char *rparam=NULL, *rdata=NULL; int rparam_count=0, rdata_count=0; - TALLOC_CTX *mem_ctx; + TALLOC_CTX *mem_ctx = NULL; prs_struct pd; SEC_DESC *psd = NULL; @@ -74,11 +74,13 @@ SEC_DESC *cli_query_secdesc(struct cli_state *cli,int fd) cleanup: - talloc_destroy(mem_ctx); + if (mem_ctx) { + talloc_destroy(mem_ctx); + prs_mem_free(&pd); + } safe_free(rparam); safe_free(rdata); - prs_mem_free(&pd); return psd; } @@ -93,7 +95,7 @@ BOOL cli_set_secdesc(struct cli_state *cli,int fd, SEC_DESC *sd) char param[8]; char *rparam=NULL, *rdata=NULL; int rparam_count=0, rdata_count=0; - TALLOC_CTX *mem_ctx; + TALLOC_CTX *mem_ctx=NULL; prs_struct pd; BOOL ret = False; @@ -138,9 +140,10 @@ BOOL cli_set_secdesc(struct cli_state *cli,int fd, SEC_DESC *sd) safe_free(rparam); safe_free(rdata); - talloc_destroy(mem_ctx); - - prs_mem_free(&pd); + if (mem_ctx) { + talloc_destroy(mem_ctx); + prs_mem_free(&pd); + } return ret; } -- cgit