From: Timo Sirainen Date: Sun, 15 Sep 2019 17:58:14 +0000 (+0300) Subject: lib-storage: mailbox list index - detect if non-selectable mailbox has GUID X-Git-Tag: 2.3.9~145 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ab4ced0e0484bf85e18d6cbd7eb22916b0cf522f;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: mailbox list index - detect if non-selectable mailbox has GUID If it has, mark it as selectable. --- diff --git a/src/lib-storage/list/mailbox-list-index.c b/src/lib-storage/list/mailbox-list-index.c index ac45a890aa..3f3b4bd0a8 100644 --- a/src/lib-storage/list/mailbox-list-index.c +++ b/src/lib-storage/list/mailbox-list-index.c @@ -337,6 +337,15 @@ static int mailbox_list_index_parse_records(struct mailbox_list_index *ilist, "setting it non-selectable"; node->corrupted_flags = TRUE; } + if (!ilist->has_backing_store && !guid_128_is_empty(irec->guid) && + (rec->flags & (MAILBOX_LIST_INDEX_FLAG_NONEXISTENT | + MAILBOX_LIST_INDEX_FLAG_NOSELECT)) != 0) { + node->flags &= ~(MAILBOX_LIST_INDEX_FLAG_NONEXISTENT | + MAILBOX_LIST_INDEX_FLAG_NOSELECT); + *error_r = "non-selectable mailbox already has GUID - " + "marking it selectable"; + node->corrupted_flags = TRUE; + } node->name_id = irec->name_id; if (node->name_id == 0) {