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.3.0.rc1~1298 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4299aef7cde9dcd3dd40fdb9fd1114f939754759;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 6096efada0..c0b41361e5 100644 --- a/src/plugins/virtual/virtual-sync.c +++ b/src/plugins/virtual/virtual-sync.c @@ -312,6 +312,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);