From: Aki Tuomi Date: Wed, 5 Oct 2022 12:42:25 +0000 (+0300) Subject: lib-storage: LAYOUT=index rebuild - Fix detecting duplicate mailbox GUIDs in index X-Git-Tag: 2.3.20~35 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ef26f7d1efb8a44c0fc259abc90fe21832cf592e;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: LAYOUT=index rebuild - Fix detecting duplicate mailbox GUIDs in index Otherwise duplicate folders are not properly cleared out. Broken in 2fc8d7024bb161aab08031b8212a736301844858 --- diff --git a/src/lib-storage/list/mail-storage-list-index-rebuild.c b/src/lib-storage/list/mail-storage-list-index-rebuild.c index 7fa4741116..0526be8c75 100644 --- a/src/lib-storage/list/mail-storage-list-index-rebuild.c +++ b/src/lib-storage/list/mail-storage-list-index-rebuild.c @@ -265,6 +265,13 @@ mail_storage_list_index_find_indexed_mailbox(struct mail_storage_list_index_rebu e_debug(box->event, "Mailbox GUID %s exists in list index, but not in storage", guid_128_to_string(metadata.guid)); + /* Add it there so we can delete the duplicate */ + char *hk_dup = p_strdup(ctx->pool, hk); + rebuild_box = p_new(ctx->pool, struct mail_storage_list_index_rebuild_mailbox, 1); + rebuild_box->list = info->ns->list; + rebuild_box->index_name = p_strdup(ctx->pool, box->name); + guid_128_copy(rebuild_box->guid, metadata.guid); + hash_table_insert(ctx->mailboxes, hk_dup, rebuild_box); } else if (rebuild_box->index_name == NULL) { rebuild_box->index_name = p_strdup(ctx->pool, box->name);