From: Michael Adam Date: Sun, 16 Mar 2008 23:41:59 +0000 (+0100) Subject: registry: don't leak (to talloc_tos()) in regdb_store_keys(). X-Git-Tag: samba-3.3.0pre1~3286 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=95525772f2791f0fb999fe9f271da5b0fbdc62d8;p=thirdparty%2Fsamba.git registry: don't leak (to talloc_tos()) in regdb_store_keys(). use talloc_stackframe() and free on error path. Michael --- diff --git a/source/registry/reg_backend_db.c b/source/registry/reg_backend_db.c index f91ddb7d8cd..13458fe459b 100644 --- a/source/registry/reg_backend_db.c +++ b/source/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");