changeset 3497:872218271484 HEAD

Check that record alignmentation is actually used correctly. If not, recreate the index.
author Timo Sirainen <tss@iki.fi>
date Thu, 21 Jul 2005 22:07:37 +0300
parents 51bf11f92c07
children 910620d1e19e
files src/lib-index/mail-index.c
diffstat 1 files changed, 9 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-index.c	Thu Jul 14 00:35:17 2005 +0300
+++ b/src/lib-index/mail-index.c	Thu Jul 21 22:07:37 2005 +0300
@@ -326,6 +326,15 @@
 			return -1;
 		}
 
+		if ((ext_hdr->record_offset % ext_hdr->record_align) != 0 ||
+		    (map->hdr.record_size % ext_hdr->record_align) != 0) {
+			mail_index_set_error(index, "Corrupted index file %s: "
+				"Record field %s alignmentation %u not used",
+				index->filepath, name, ext_hdr->record_align);
+			t_pop();
+			return -1;
+		}
+
 		mail_index_map_register_ext(index, map, name,
 					    offset, ext_hdr->hdr_size,
 					    ext_hdr->record_offset,