From: Timo Sirainen Date: Wed, 4 Sep 2013 19:16:02 +0000 (+0300) Subject: lib-index: Fixed modseq updates when modseq was over 32bits long X-Git-Tag: 2.2.6~115 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=76959d3d6fed45d5f5e1397fcdcf09a5adb87f24;p=thirdparty%2Fdovecot%2Fcore.git lib-index: Fixed modseq updates when modseq was over 32bits long --- diff --git a/src/lib-index/mail-index-sync-update.c b/src/lib-index/mail-index-sync-update.c index 56b546707f..e460b49f4a 100644 --- a/src/lib-index/mail-index-sync-update.c +++ b/src/lib-index/mail-index-sync-update.c @@ -322,7 +322,7 @@ sync_modseq_update(struct mail_index_sync_map_ctx *ctx, else if (!mail_index_lookup_seq(view, u->uid, &seq)) continue; - min_modseq = ((uint64_t)u->modseq_high32 >> 32) | + min_modseq = ((uint64_t)u->modseq_high32 << 32) | u->modseq_low32; if (highest_modseq < min_modseq) highest_modseq = min_modseq; diff --git a/src/lib-index/mail-transaction-log-file.c b/src/lib-index/mail-transaction-log-file.c index 4e0bcfa4d7..2b666156ea 100644 --- a/src/lib-index/mail-transaction-log-file.c +++ b/src/lib-index/mail-transaction-log-file.c @@ -1031,7 +1031,7 @@ void mail_transaction_update_modseq(const struct mail_transaction_header *hdr, end = CONST_PTR_OFFSET(data, trans_size - sizeof(*hdr)); for (rec = data; rec < end; rec++) { - uint64_t modseq = ((uint64_t)rec->modseq_high32 >> 32) | + uint64_t modseq = ((uint64_t)rec->modseq_high32 << 32) | rec->modseq_low32; if (*cur_modseq < modseq) *cur_modseq = modseq;