]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
bugfixes
authorTimo Sirainen <tss@iki.fi>
Sat, 15 May 2004 12:00:08 +0000 (15:00 +0300)
committerTimo Sirainen <tss@iki.fi>
Sat, 15 May 2004 12:00:08 +0000 (15:00 +0300)
--HG--
branch : HEAD

src/lib-index/mail-transaction-log.c

index f9a7a7742e9a5a64eeadbde0e730f38ae46c36d8..a0ccdbae921445e9098bb48bbcd3b7ac78ad6162 100644 (file)
@@ -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);