# HG changeset patch # User Timo Sirainen # Date 1102899342 -7200 # Node ID c0bdb35277fc69985fe5d1d76b41d464ab3b39c2 # Parent d048ef0a67f25f1597b968870bca45e3501a0463 If log file sequences get broken, complain instead of crashing. diff -r d048ef0a67f2 -r c0bdb35277fc src/lib-index/mail-index-sync.c --- 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,