dovecot-2.0: lib-index: Fixed reading mailbox logs larger than 1...

dovecot at dovecot.org dovecot at dovecot.org
Mon Jul 19 17:09:57 EEST 2010


details:   http://hg.dovecot.org/dovecot-2.0/rev/204eaf35e144
changeset: 11857:204eaf35e144
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Jul 19 15:09:53 2010 +0100
description:
lib-index: Fixed reading mailbox logs larger than 128 records.

diffstat:

 src/lib-index/mailbox-log.c |  6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diffs (25 lines):

diff -r e4d870bed095 -r 204eaf35e144 src/lib-index/mailbox-log.c
--- a/src/lib-index/mailbox-log.c	Mon Jul 19 14:54:36 2010 +0100
+++ b/src/lib-index/mailbox-log.c	Mon Jul 19 15:09:53 2010 +0100
@@ -244,8 +244,10 @@
 			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 @@
 	    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;


More information about the dovecot-cvs mailing list