From: Timo Sirainen Date: Mon, 19 Jul 2010 14:09:53 +0000 (+0100) Subject: lib-index: Fixed reading mailbox logs larger than 128 records. X-Git-Tag: 2.0.rc3~19 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3d7590a656f4f746b2adc6e00fa607eba5d2412d;p=thirdparty%2Fdovecot%2Fcore.git lib-index: Fixed reading mailbox logs larger than 128 records. --- diff --git a/src/lib-index/mailbox-log.c b/src/lib-index/mailbox-log.c index 7b1b4fda75..16befda47a 100644 --- a/src/lib-index/mailbox-log.c +++ b/src/lib-index/mailbox-log.c @@ -244,8 +244,10 @@ mailbox_log_iter_next(struct mailbox_log_iter *iter) if (!mailbox_log_iter_open_next(iter)) return NULL; iter->idx = iter->count = 0; + iter->offset = 0; return mailbox_log_iter_next(iter); } + iter->idx = 0; iter->count = ret / sizeof(iter->buf[0]); iter->offset += iter->count * sizeof(iter->buf[0]); } @@ -254,8 +256,8 @@ mailbox_log_iter_next(struct mailbox_log_iter *iter) rec->type > MAILBOX_LOG_RECORD_UNSUBSCRIBE) { offset = iter->offset - (iter->count - iter->idx) * sizeof(iter->buf[0]); - i_error("Corrupted mailbox log at offset %"PRIuUOFF_T": %s", - offset, iter->filepath); + i_error("Corrupted mailbox log %s at offset %"PRIuUOFF_T": " + "type=%d", iter->filepath, offset, rec->type); if (unlink(iter->filepath) < 0) i_error("unlink(%s) failed: %m", iter->filepath); return NULL;