From: Timo Sirainen Date: Wed, 24 Mar 2021 14:09:51 +0000 (+0200) Subject: lib-storage: Fix detecting duplicate nodes in mailbox list index X-Git-Tag: 2.3.15~48 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f7ddc1501d094baf2ac30349058cb4dc321c97ec;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Fix detecting duplicate nodes in mailbox list index The duplicates were checked only for root nodes, not for child nodes. --- diff --git a/src/lib-storage/list/mailbox-list-index.c b/src/lib-storage/list/mailbox-list-index.c index 1610f5ef9c..08db83ff42 100644 --- a/src/lib-storage/list/mailbox-list-index.c +++ b/src/lib-storage/list/mailbox-list-index.c @@ -410,7 +410,6 @@ static int mailbox_list_index_parse_records(struct mailbox_list_index *ilist, node->parent = parent; node->next = parent->children; parent->children = node; - continue; } } else if (strcasecmp(node->raw_name, "INBOX") == 0) { ilist->rebuild_on_missing_inbox = FALSE; @@ -437,8 +436,10 @@ static int mailbox_list_index_parse_records(struct mailbox_list_index *ilist, "Duplicate mailbox '%s' in index, renaming to %s", old_name, node->raw_name); } - node->next = ilist->mailbox_tree; - ilist->mailbox_tree = node; + if (node->parent == NULL) { + node->next = ilist->mailbox_tree; + ilist->mailbox_tree = node; + } } hash_table_destroy(&duplicate_hash); return *error_r == NULL ? 0 : -1;