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

source3/lib/dbwrap_util.c

index 549fd46624690314802bb92414bbdfebf4429637..b9b525a47bc79d41781844b7d15149cb1699b22c 100644 (file)
@@ -125,7 +125,8 @@ NTSTATUS dbwrap_change_uint32_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;
@@ -135,8 +136,8 @@ NTSTATUS dbwrap_change_uint32_atomic(struct db_context *db, const char *keystr,
 
        ret = rec->store(rec, data, TDB_REPLACE);
 
+done:
        TALLOC_FREE(rec);
-
        return ret;
 }