s3:fix endianness bug in dbwrap_change_uint32_atomic() (bug #6901)
authorMichael Adam <obnox@samba.org>
Fri, 20 Nov 2009 23:08:38 +0000 (00:08 +0100)
committerMichael Adam <obnox@samba.org>
Fri, 20 Nov 2009 23:49:28 +0000 (00:49 +0100)
Michael

source3/lib/dbwrap_util.c

index 1c19016..96888a4 100644 (file)
@@ -118,7 +118,7 @@ static NTSTATUS dbwrap_change_uint32_atomic_action(struct db_context *db,
 {
        struct db_record *rec;
        uint32 val = -1;
-       TDB_DATA data;
+       uint32_t v_store;
        NTSTATUS ret;
        struct dbwrap_change_uint32_atomic_context *state;
 
@@ -141,10 +141,12 @@ static NTSTATUS dbwrap_change_uint32_atomic_action(struct db_context *db,
 
        val += state->change_val;
 
-       data.dsize = sizeof(val);
-       data.dptr = (uint8 *)&val;
+       SIVAL(&v_store, 0, val);
 
-       ret = rec->store(rec, data, TDB_REPLACE);
+       ret = rec->store(rec,
+                        make_tdb_data((const uint8 *)&v_store,
+                                      sizeof(v_store)),
+                        TDB_REPLACE);
 
 done:
        TALLOC_FREE(rec);