summaryrefslogtreecommitdiff
path: root/source3/registry
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2012-07-18 05:06:31 +0930
committerRusty Russell <rusty@rustcorp.com.au>2012-07-18 05:06:31 +0930
commit15faffc53752f27c550c305435a1d7e1ea58514f (patch)
tree58aa5b3de67ada4d666df12bf4b8c1b675ce2152 /source3/registry
parent5716570cbc1db1bf0d60441622f79ac934443232 (diff)
downloadsamba-15faffc53752f27c550c305435a1d7e1ea58514f.tar.gz
samba-15faffc53752f27c550c305435a1d7e1ea58514f.tar.bz2
samba-15faffc53752f27c550c305435a1d7e1ea58514f.zip
source3/registry/reg_backend_db.c: fix stackframe leak
regdb_store_values_internal() doesn't always free its stackframe. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'source3/registry')
-rw-r--r--source3/registry/reg_backend_db.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/source3/registry/reg_backend_db.c b/source3/registry/reg_backend_db.c
index 8fe1b8e61c..75ad507e2b 100644
--- a/source3/registry/reg_backend_db.c
+++ b/source3/registry/reg_backend_db.c
@@ -1961,7 +1961,8 @@ static NTSTATUS regdb_store_values_internal(struct db_context *db,
if (regval_ctr_numvals(values) == 0) {
werr = regdb_delete_values(db, key);
if (!W_ERROR_IS_OK(werr)) {
- return werror_to_ntstatus(werr);
+ status = werror_to_ntstatus(werr);
+ goto done;
}
/*
@@ -1969,7 +1970,8 @@ static NTSTATUS regdb_store_values_internal(struct db_context *db,
* from going to disk
*/
werr = regval_ctr_set_seqnum(values, dbwrap_get_seqnum(db));
- return werror_to_ntstatus(werr);
+ status = werror_to_ntstatus(werr);
+ goto done;
}
ZERO_STRUCT(data);