make sure we don't free non-allocated data
authorAndrew Tridgell <tridge@samba.org>
Thu, 22 Feb 2001 03:38:48 +0000 (03:38 +0000)
committerAndrew Tridgell <tridge@samba.org>
Thu, 22 Feb 2001 03:38:48 +0000 (03:38 +0000)
(This used to be commit 4a620f7037378dc042b6388ede6356c6db5d58fb)

source3/libsmb/clisecdesc.c

index d53b3073b2986d03df7e44b4a3cef37cc9dadbe0..59d8bdcc71d2e58037ed043da49e3aa1474da005 100644 (file)
@@ -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;
 }