source3/registry/reg_backend_db.c: fix stackframe leak
authorRusty Russell <rusty@rustcorp.com.au>
Tue, 17 Jul 2012 19:36:31 +0000 (05:06 +0930)
committerRusty Russell <rusty@rustcorp.com.au>
Tue, 17 Jul 2012 19:36:31 +0000 (05:06 +0930)
regdb_store_values_internal() doesn't always free its stackframe.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
source3/registry/reg_backend_db.c

index 8fe1b8e61c42d43187a84fe084c52ac418e17f2b..75ad507e2b05b54a0f63215b963b92b4c0cc560f 100644 (file)
@@ -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);