s3:dbwrap: don't leak in dbwrap_change_int32_atomic().
authorMichael Adam <obnox@samba.org>
Wed, 29 Jul 2009 12:23:26 +0000 (14:23 +0200)
committerMichael Adam <obnox@samba.org>
Wed, 29 Jul 2009 14:26:22 +0000 (16:26 +0200)
Michael

source3/lib/dbwrap_util.c

index b9b525a47bc79d41781844b7d15149cb1699b22c..1e3755af981d1d8311e71ccdb5b30dcd0bb0f4b0 100644 (file)
@@ -167,7 +167,8 @@ NTSTATUS dbwrap_change_int32_atomic(struct db_context *db, const char *keystr,
                val = IVAL(rec->value.dptr, 0);
                *oldval = val;
        } else {
-               return NT_STATUS_UNSUCCESSFUL;
+               ret = NT_STATUS_UNSUCCESSFUL;
+               goto done;
        }
 
        val += change_val;
@@ -177,8 +178,8 @@ NTSTATUS dbwrap_change_int32_atomic(struct db_context *db, const char *keystr,
 
        ret = rec->store(rec, data, TDB_REPLACE);
 
+done:
        TALLOC_FREE(rec);
-
        return ret;
 }