Mercurial > dovecot > original-hg > dovecot-1.2
changeset 2963:c0bdb35277fc HEAD
If log file sequences get broken, complain instead of crashing.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 13 Dec 2004 02:55:42 +0200 |
parents | d048ef0a67f2 |
children | e032167a05ca |
files | src/lib-index/mail-index-sync.c |
diffstat | 1 files changed, 12 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-index/mail-index-sync.c Mon Dec 13 02:24:27 2004 +0200 +++ b/src/lib-index/mail-index-sync.c Mon Dec 13 02:55:42 2004 +0200 @@ -4,7 +4,7 @@ #include "buffer.h" #include "mail-index-view-private.h" #include "mail-index-sync-private.h" -#include "mail-transaction-log.h" +#include "mail-transaction-log-private.h" #include "mail-transaction-util.h" #include "mail-cache.h" @@ -342,6 +342,17 @@ ctx->view = mail_index_view_open(index); + if (index->hdr->log_file_seq == seq && + index->hdr->log_file_int_offset > offset) { + /* synced offset is greater than what we have available. + the log sequences have gotten messed up. */ + mail_transaction_log_file_set_corrupted(index->log->head, + "log_file_int_offset (%u) > log size (%"PRIuUOFF_T")", + seq, index->hdr->log_file_int_offset, offset); + mail_index_sync_rollback(ctx); + return -1; + } + if (mail_transaction_log_view_set(ctx->view->log_view, index->hdr->log_file_seq, index->hdr->log_file_int_offset,