changeset 1719:f25f90d8d24a HEAD

expunge/append behaviour corrupted indexes
author Timo Sirainen <tss@iki.fi>
date Sun, 24 Aug 2003 09:32:08 +0300
parents 43b4b59310d2
children a0dee56b280d
files src/lib-index/mail-index-file.c src/lib-index/mail-index.c
diffstat 2 files changed, 6 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-index-file.c	Sun Aug 24 09:31:35 2003 +0300
+++ b/src/lib-index/mail-index-file.c	Sun Aug 24 09:32:08 2003 +0300
@@ -31,6 +31,11 @@
 	index->header->used_file_size -= sizeof(*rec) * count;
 	index->mmap_used_length -= sizeof(*rec) * count;
 
+	/* not really needed since append() will initialize it as well,
+	   but may help preventing problems if change is only partially
+	   written to disk */
+	memset((char *) rec + index->mmap_used_length, 0, sizeof(*rec) * count);
+
 	return mail_index_truncate(index);
 }
 
--- a/src/lib-index/mail-index.c	Sun Aug 24 09:31:35 2003 +0300
+++ b/src/lib-index/mail-index.c	Sun Aug 24 09:32:08 2003 +0300
@@ -680,6 +680,7 @@
 					    index->mmap_used_length);
 	rec->uid = index->header->next_uid++;
 	rec->msg_flags = 0;
+	rec->cache_offset = 0;
 
 	index->header->used_file_size += sizeof(*rec);
 	index->mmap_used_length += sizeof(*rec);