summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2009-11-21 00:14:29 +0100
committerMichael Adam <obnox@samba.org>2009-11-21 00:49:29 +0100
commit446ed18eb6eeec06b4f81aaf89f75db32472defb (patch)
tree09d988a5b8c818fab400d3c67902327b073337bc
parent4afffc96ee7ed81c4d77b28da887fcb51f1b3579 (diff)
downloadsamba-446ed18eb6eeec06b4f81aaf89f75db32472defb.tar.gz
samba-446ed18eb6eeec06b4f81aaf89f75db32472defb.tar.bz2
samba-446ed18eb6eeec06b4f81aaf89f75db32472defb.zip
s3:fix endianness bug in dbwrap_change_int32_atomic() (bug #6901)
Michael
-rw-r--r--source3/lib/dbwrap_util.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/source3/lib/dbwrap_util.c b/source3/lib/dbwrap_util.c
index 96888a4fb0..74b22655e2 100644
--- a/source3/lib/dbwrap_util.c
+++ b/source3/lib/dbwrap_util.c
@@ -204,7 +204,7 @@ static NTSTATUS dbwrap_change_int32_atomic_action(struct db_context *db,
{
struct db_record *rec;
int32_t val = -1;
- TDB_DATA data;
+ int32_t v_store;
NTSTATUS ret;
struct dbwrap_change_int32_atomic_context *state;
@@ -227,10 +227,12 @@ static NTSTATUS dbwrap_change_int32_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_t *)&v_store,
+ sizeof(v_store)),
+ TDB_REPLACE);
done:
TALLOC_FREE(rec);