From ba8607acc1d5d5a96363a2eada8b17ca50c6e5f8 Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Mon, 17 Mar 2008 00:41:59 +0100 Subject: registry: don't leak (to talloc_tos()) in regdb_store_keys(). use talloc_stackframe() and free on error path. Michael (This used to be commit 95525772f2791f0fb999fe9f271da5b0fbdc62d8) --- source3/registry/reg_backend_db.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source3/registry') diff --git a/source3/registry/reg_backend_db.c b/source3/registry/reg_backend_db.c index f91ddb7d8c..13458fe459 100644 --- a/source3/registry/reg_backend_db.c +++ b/source3/registry/reg_backend_db.c @@ -459,7 +459,7 @@ bool regdb_store_keys(const char *key, REGSUBKEY_CTR *ctr) char *path = NULL; REGSUBKEY_CTR *subkeys = NULL, *old_subkeys = NULL; char *oldkeyname = NULL; - TALLOC_CTX *ctx = talloc_tos(); + TALLOC_CTX *ctx = talloc_stackframe(); NTSTATUS status; /* @@ -623,6 +623,7 @@ bool regdb_store_keys(const char *key, REGSUBKEY_CTR *ctr) fail: TALLOC_FREE(old_subkeys); TALLOC_FREE(subkeys); + TALLOC_FREE(ctx); if (regdb->transaction_cancel(regdb) == -1) { smb_panic("regdb_store_keys: transaction_cancel failed\n"); -- cgit