Skip to content

Commit

Permalink
lib-index: Make sure cache compression doesn't clear the file unneede…
Browse files Browse the repository at this point in the history
…dly.

This probably never happened with current code, except when the cache file
was already broken.

mail_cache_compress() unmapped cache when map_with_read==TRUE, but we never
mapped it back. This would cause cache copying code to think cache was
unusable and not copy anything.
  • Loading branch information
sirainen committed May 23, 2016
1 parent d59c580 commit a76e22d
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/lib-index/mail-cache-compress.c
Expand Up @@ -452,6 +452,9 @@ static int mail_cache_compress_locked(struct mail_cache *cache,

return mail_cache_reopen(cache) < 0 ? -1 : 0;
}
/* make sure we have mapped it before reading. */
if (mail_cache_map(cache, 0, 0, &data) < 0)
return -1;

/* we want to recreate the cache. write it first to a temporary file */
fd = mail_index_create_tmp_file(cache->index, cache->filepath, &temp_path);
Expand Down

0 comments on commit a76e22d

Please sign in to comment.