Mercurial > dovecot > original-hg > dovecot-2.1
changeset 14855:bded819417d9
lib-index: MAIL_INDEX_OPEN_FLAG_SAVEONLY was buggy when reading data near end of dovecot.index.cache.
We assumed that we read as much as we requested, even if the file was
smaller.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 18 Dec 2012 22:07:36 +0200 |
parents | 2f848393f78e |
children | bde8963a3774 |
files | src/lib-index/mail-cache.c |
diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-index/mail-cache.c Tue Dec 18 22:05:55 2012 +0200 +++ b/src/lib-index/mail-cache.c Tue Dec 18 22:07:36 2012 +0200 @@ -346,11 +346,12 @@ buffer_set_used_size(cache->read_buf, ret); cache->read_offset = offset; - cache->mmap_length = offset + size; + cache->mmap_length = offset + cache->read_buf->used; *data_r = data; hdr_data = offset == 0 ? *data_r : NULL; - return mail_cache_map_finish(cache, offset, size, hdr_data, TRUE); + return mail_cache_map_finish(cache, offset, + cache->read_buf->used, hdr_data, TRUE); } int mail_cache_map(struct mail_cache *cache, size_t offset, size_t size,