From: Michael Adam Date: Sun, 16 Mar 2008 23:43:56 +0000 (+0100) Subject: registry: don't leak memory on transaction fail in regdb_store_keys(). X-Git-Tag: samba-3.3.0pre1~3285 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9315de404812d89dddcec6ac4ae17c34f5012746;p=thirdparty%2Fsamba.git registry: don't leak memory on transaction fail in regdb_store_keys(). Michael --- diff --git a/source/registry/reg_backend_db.c b/source/registry/reg_backend_db.c index 13458fe459b..787ca76f89a 100644 --- a/source/registry/reg_backend_db.c +++ b/source/registry/reg_backend_db.c @@ -493,6 +493,8 @@ bool regdb_store_keys(const char *key, REGSUBKEY_CTR *ctr) } } + TALLOC_FREE(old_subkeys); + if (regdb->transaction_start(regdb) == -1) { DEBUG(0, ("regdb_store_keys: transaction_start failed\n")); return false; @@ -502,8 +504,6 @@ bool regdb_store_keys(const char *key, REGSUBKEY_CTR *ctr) * Re-fetch the old keys inside the transaction */ - TALLOC_FREE(old_subkeys); - if (!(old_subkeys = TALLOC_ZERO_P(ctr, REGSUBKEY_CTR))) { DEBUG(0,("regdb_store_keys: talloc() failure!\n")); goto fail;