From f7ddc1501d094baf2ac30349058cb4dc321c97ec Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 24 Mar 2021 16:09:51 +0200 Subject: [PATCH] lib-storage: Fix detecting duplicate nodes in mailbox list index The duplicates were checked only for root nodes, not for child nodes. --- src/lib-storage/list/mailbox-list-index.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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; -- 2.47.3