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,