changeset 940:65639e7a7cb0 HEAD

A few more sanity checks.
author Timo Sirainen <tss@iki.fi>
date Fri, 10 Jan 2003 15:36:01 +0200
parents 24b64302f59c
children 4d6b69558add
files src/lib-index/mail-index-data.c
diffstat 1 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-index-data.c	Fri Jan 10 13:29:24 2003 +0200
+++ b/src/lib-index/mail-index-data.c	Fri Jan 10 15:36:01 2003 +0200
@@ -73,6 +73,12 @@
 
 static void mail_index_data_file_close(struct mail_index_data *data)
 {
+	if (data->modified) {
+		if (msync(data->mmap_base, data->mmap_used_length, MS_SYNC) < 0)
+			index_data_set_syscall_error(data, "msync()");
+		data->modified = FALSE;
+	}
+
 	if (data->anon_mmap) {
 		if (munmap_anon(data->mmap_base, data->mmap_full_length) < 0)
 			index_data_set_syscall_error(data, "munmap_anon()");
@@ -141,7 +147,9 @@
 
 		if (pos + size <= data->mmap_full_length) {
 			data->mmap_used_length = data->header->used_file_size;
-			if (data->mmap_used_length <= data->mmap_full_length)
+			if (data->mmap_used_length >=
+			    sizeof(struct mail_index_data_header) &&
+			    data->mmap_used_length <= data->mmap_full_length)
 				return TRUE;
 
 			/* file size changed, re-mmap() */