diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2012-07-18 05:06:31 +0930 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2012-07-18 05:06:31 +0930 |
commit | 15faffc53752f27c550c305435a1d7e1ea58514f (patch) | |
tree | 58aa5b3de67ada4d666df12bf4b8c1b675ce2152 /source3 | |
parent | 5716570cbc1db1bf0d60441622f79ac934443232 (diff) | |
download | samba-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')
-rw-r--r-- | source3/registry/reg_backend_db.c | 6 |
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); |