From: Timo Sirainen Date: Sat, 15 May 2004 12:00:08 +0000 (+0300) Subject: bugfixes X-Git-Tag: 1.1.alpha1~4090 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=23d8927a1c5df837691ecfddcbb59a0487b2688b;p=thirdparty%2Fdovecot%2Fcore.git bugfixes --HG-- branch : HEAD --- diff --git a/src/lib-index/mail-transaction-log.c b/src/lib-index/mail-transaction-log.c index f9a7a7742e..a0ccdbae92 100644 --- a/src/lib-index/mail-transaction-log.c +++ b/src/lib-index/mail-transaction-log.c @@ -900,6 +900,9 @@ log_view_fix_sequences(struct mail_index_view *view, buffer_t *view_expunges, for (src_idx = dest_idx = 0; src_idx < size; src_idx += record_size) { seq = (uint32_t *)&data[src_idx]; + i_assert(src_idx + record_size == size || + *seq <= *((uint32_t *) &data[src_idx+record_size])); + while (exp != exp_end && exp->seq1 < seq[0]) { expunges_before += exp->seq2 - exp->seq1 + 1; exp++; @@ -940,8 +943,12 @@ log_view_fix_sequences(struct mail_index_view *view, buffer_t *view_expunges, } } - if (src_idx != dest_idx) + if (src_idx != dest_idx) { memcpy(&data[dest_idx], &data[src_idx], record_size); + i_assert(dest_idx == 0 || + *((uint32_t *) &data[dest_idx]) >= + *((uint32_t *) &data[dest_idx-record_size])); + } dest_idx += record_size; } buffer_set_used_size(buf, dest_idx);