[dovecot-cvs] dovecot/src/lib-index mail-index-data.c,1.33,1.34

cras at procontrol.fi cras at procontrol.fi
Fri Jan 10 15:36:04 EET 2003


Update of /home/cvs/dovecot/src/lib-index
In directory danu:/tmp/cvs-serv20337

Modified Files:
	mail-index-data.c 
Log Message:
A few more sanity checks.



Index: mail-index-data.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-index/mail-index-data.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- mail-index-data.c	5 Jan 2003 13:09:52 -0000	1.33
+++ mail-index-data.c	10 Jan 2003 13:36:01 -0000	1.34
@@ -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() */




More information about the dovecot-cvs mailing list