]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
fix alignment bug for pulldb
authorRonnie Sahlberg <sahlberg@ronnie>
Tue, 8 May 2007 04:42:00 +0000 (14:42 +1000)
committerRonnie Sahlberg <sahlberg@ronnie>
Tue, 8 May 2007 04:42:00 +0000 (14:42 +1000)
(This used to be ctdb commit f1188289c18805c2c5f8bae61d73df3fc762faee)

ctdb/common/ctdb_control.c

index f79aaf0ce8d0b65c41658ea1eadbf3a33bf3159b..85c61273012590dd5dc5d56c6b5c193898b48fc3 100644 (file)
@@ -92,6 +92,7 @@ static int traverse_getkeys(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data
        len+=4; /*lmaster*/
        len+=4; /*key len*/
        len+=4; /*data len */
+       len=(len+CTDB_DS_ALIGNMENT-1)& ~(CTDB_DS_ALIGNMENT-1);
        len+=key.dsize;
        len=(len+CTDB_DS_ALIGNMENT-1)& ~(CTDB_DS_ALIGNMENT-1);
        len+=sizeof(struct ctdb_ltdb_header);
@@ -122,6 +123,7 @@ static int traverse_getkeys(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data
 
        ptr = outdata->dptr+(((ptr-outdata->dptr)+CTDB_DS_ALIGNMENT-1)& ~(CTDB_DS_ALIGNMENT-1));
        memcpy(ptr, data.dptr+sizeof(struct ctdb_ltdb_header), data.dsize-sizeof(struct ctdb_ltdb_header));
+       ptr = outdata->dptr+(((ptr-outdata->dptr)+CTDB_DS_ALIGNMENT-1)& ~(CTDB_DS_ALIGNMENT-1));
 
        return 0;
 }