From: Aki Tuomi Date: Mon, 3 Jul 2017 10:53:31 +0000 (+0300) Subject: virtual: Fix highest_mailbox_id if it's wrong X-Git-Tag: 2.2.32.rc1~84 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d967ba782a93e23a2eafdfdff377a92eb048fd52;p=thirdparty%2Fdovecot%2Fcore.git virtual: Fix highest_mailbox_id if it's wrong --- diff --git a/src/plugins/virtual/virtual-sync.c b/src/plugins/virtual/virtual-sync.c index ab58e5dcbe..df7949820d 100644 --- a/src/plugins/virtual/virtual-sync.c +++ b/src/plugins/virtual/virtual-sync.c @@ -311,6 +311,14 @@ static void virtual_sync_ext_header_rewrite(struct virtual_sync_context *ctx) mailbox_pos += sizeof(mailbox); name_pos += mailbox.name_len; + + /* repair the value */ + if (ctx->mbox->highest_mailbox_id < mailbox.id) + ctx->mbox->highest_mailbox_id = mailbox.id; + } + if (ctx->mbox->highest_mailbox_id != ext_hdr.highest_mailbox_id) { + ext_hdr.highest_mailbox_id = ctx->mbox->highest_mailbox_id; + buffer_write(buf, 0, &ext_hdr, sizeof(ext_hdr)); } i_assert(buf->used == name_pos);