changeset 2011:9c2c31893775 HEAD

don't crash with assert if transacton log has expunge with seq 0
author Timo Sirainen <tss@iki.fi>
date Tue, 11 May 2004 00:26:31 +0300
parents 01d2eb10a1c9
children 863fbe16e395
files src/lib-index/mail-index-sync.c
diffstat 1 files changed, 3 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-index-sync.c	Tue May 11 00:25:42 2004 +0300
+++ b/src/lib-index/mail-index-sync.c	Tue May 11 00:26:31 2004 +0300
@@ -307,15 +307,9 @@
 		   it's quite unlikely this expunge was caused by some bug. */
 		uint32_t uid1, uid2;
 
-		if (next_exp->seq1 > ctx->view->map->records_count ||
-		    next_exp->seq2 > ctx->view->map->records_count) {
-			mail_transaction_log_view_set_corrupted(
-				ctx->view->log_view, "Expunge range %u..%u "
-				"larger than message count %u",
-				next_exp->seq1, next_exp->seq2,
-				ctx->view->map->records_count);
+		mail_index_sync_get_expunge(sync_rec, next_exp);
+		if (mail_index_sync_rec_check(ctx->view, sync_rec) < 0)
 			return -1;
-		}
 
 		if (mail_index_lookup_uid(ctx->view, next_exp->seq1, &uid1) < 0)
 			return -1;
@@ -330,13 +324,12 @@
 			return -1;
 		}
 
-		mail_index_sync_get_expunge(sync_rec, next_exp);
 		ctx->expunge_idx++;
 
 		/* scan updates again from the beginning */
 		ctx->update_idx = 0;
 		ctx->next_seq = next_exp->seq2;          
-		return mail_index_sync_rec_check(ctx->view, sync_rec);
+		return 1;
 	}
 
 	if (ctx->sync_appends) {