From: Timo Sirainen Date: Tue, 22 Oct 2019 16:58:23 +0000 (+0300) Subject: lib-storage: Fix copying vsize record when copying mails X-Git-Tag: 2.3.9~93 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=68abe63219b6a9b3d4247e23be3296fc8d37db93;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Fix copying vsize record when copying mails Broken by 153ab952f77ed25b71fa4fa9774ff3e3a776b91c --- diff --git a/src/lib-storage/index/index-storage.c b/src/lib-storage/index/index-storage.c index 8281341fcd..49ff555719 100644 --- a/src/lib-storage/index/index-storage.c +++ b/src/lib-storage/index/index-storage.c @@ -1015,18 +1015,19 @@ static void index_copy_vsize_extension(struct mail_save_context *ctx, struct mail *src_mail, uint32_t dest_seq) { - struct index_mail *src_imail = INDEX_MAIL(src_mail); unsigned int idx; + const uint32_t *vsizep; bool expunged ATTR_UNUSED; - (void)index_mail_get_vsize_extension(src_mail); - if (src_imail->data.virtual_size == (uoff_t)-1) + vsizep = index_mail_get_vsize_extension(src_mail); + if (vsizep == NULL || *vsizep == 0) return; + uint32_t vsize = *vsizep; if (mail_index_map_get_ext_idx(ctx->transaction->view->map, ctx->transaction->box->mail_vsize_ext_id, &idx) && - src_imail->data.virtual_size < (uint32_t)-1) { + vsize < (uint32_t)-1) { uint32_t vsize = src_imail->data.virtual_size+1; mail_index_update_ext(ctx->transaction->itrans, dest_seq, ctx->transaction->box->mail_vsize_ext_id,