# HG changeset patch # User Timo Sirainen # Date 1042205761 -7200 # Node ID 65639e7a7cb0cc357b24ed7aa3c535fd8397173f # Parent 24b64302f59ce894eaeb1adf2063570f7037065c A few more sanity checks. diff -r 24b64302f59c -r 65639e7a7cb0 src/lib-index/mail-index-data.c --- 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() */