Mercurial > dovecot > core-2.2
changeset 22348:29d7def3a141
virtual: Fix highest_mailbox_id if it's wrong
author | Aki Tuomi <aki.tuomi@dovecot.fi> |
---|---|
date | Mon, 03 Jul 2017 13:53:31 +0300 |
parents | df67c602f267 |
children | 942ade508602 |
files | src/plugins/virtual/virtual-sync.c |
diffstat | 1 files changed, 8 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/plugins/virtual/virtual-sync.c Mon Jul 03 13:25:35 2017 +0300 +++ b/src/plugins/virtual/virtual-sync.c Mon Jul 03 13:53:31 2017 +0300 @@ -311,6 +311,14 @@ 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);