Mercurial > dovecot > core-2.2
changeset 22194:129d80313246
imapc: If mailbox iteration fails, make sure error message isn't lost.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Mon, 12 Jun 2017 14:35:22 +0300 |
parents | 33222df76027 |
children | c2a33eba3615 |
files | src/lib-storage/index/imapc/imapc-list.c |
diffstat | 1 files changed, 5 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/imapc/imapc-list.c Mon Jun 12 14:33:46 2017 +0300 +++ b/src/lib-storage/index/imapc/imapc-list.c Mon Jun 12 14:35:22 2017 +0300 @@ -648,7 +648,9 @@ return _ctx; } - ns_sep = mail_namespace_get_sep(_list->ns); + /* if we've already failed, make sure we don't call + mailbox_list_get_hierarchy_sep(), since it clears the error */ + ns_sep = ret < 0 ? '/' : mail_namespace_get_sep(_list->ns); pool = pool_alloconly_create("mailbox list imapc iter", 1024); ctx = p_new(pool, struct imapc_mailbox_list_iterate_context, 1); @@ -662,7 +664,8 @@ ctx->tree = mailbox_tree_init(ns_sep); mailbox_tree_set_parents_nonexistent(ctx->tree); - imapc_list_build_match_tree(ctx); + if (ret == 0) + imapc_list_build_match_tree(ctx); if (list->list.ns->prefix_len > 0) { ns_root_name = t_strndup(_list->ns->prefix,