Mercurial > dovecot > core-2.2
changeset 238:acb77be5d683 HEAD
bugfixes
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 16 Sep 2002 07:16:16 +0300 |
parents | 06d6eca0a45f |
children | 1e05ff078961 |
files | src/lib-index/mail-index.c |
diffstat | 1 files changed, 6 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-index/mail-index.c Mon Sep 16 07:01:35 2002 +0300 +++ b/src/lib-index/mail-index.c Mon Sep 16 07:16:16 2002 +0300 @@ -43,7 +43,10 @@ index->last_lookup_seq = 0; index->last_lookup = NULL; + /* keep the header set even if we fail, so we can update the flags */ hdr = index->mmap_base; + index->header = hdr; + if (hdr->used_file_size > index->mmap_full_length) { index_set_corrupted(index, "used_file_size larger than real " "file size (%"PRIuUOFF_T" vs %"PRIuSIZE_T @@ -74,7 +77,6 @@ return FALSE; } - index->header = hdr; index->sync_id = hdr->sync_id; index->mmap_used_length = hdr->used_file_size; return TRUE; @@ -933,7 +935,7 @@ if (grow_size < 16) grow_size = 16; - pos = index->mmap_full_length + grow_size; + pos = index->mmap_full_length + (grow_size * sizeof(MailIndexRecord)); i_assert(pos < OFF_T_MAX); if (index->anon_mmap) { @@ -979,8 +981,8 @@ } i_assert(index->header->used_file_size == index->mmap_used_length); - i_assert(index->mmap_used_length <= - index->mmap_full_length - sizeof(MailIndexRecord)); + i_assert(index->mmap_used_length + sizeof(MailIndexRecord) <= + index->mmap_full_length); destrec = (MailIndexRecord *) ((char *) index->mmap_base + index->mmap_used_length);