]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imapc: Allow using LAYOUT=none without crashing.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Wed, 14 Dec 2016 16:13:25 +0000 (18:13 +0200)
committerGitLab <gitlab@git.dovecot.net>
Mon, 30 Jan 2017 09:20:37 +0000 (11:20 +0200)
src/lib-storage/index/imapc/imapc-list.c
src/lib-storage/index/imapc/imapc-storage.c

index a7d83c6f5491b992e9b4671fb160c02198c8b72d..aaa583ffdd2acacc9eba728d9f1167468980dff3 100644 (file)
@@ -390,7 +390,7 @@ static struct mailbox_list *imapc_list_get_fs(struct imapc_mailbox_list *list)
        if (dir == NULL)
                dir = list->list.set.root_dir;
 
-       if (dir == NULL) {
+       if (dir == NULL || dir[0] == '\0') {
                /* indexes disabled */
        } else if (list->index_list == NULL && !list->index_list_failed) {
                mailbox_list_settings_init_defaults(&list_set);
@@ -937,6 +937,11 @@ int imapc_list_get_mailbox_flags(struct mailbox_list *_list, const char *name,
                i_assert(list->refreshed_mailboxes_recently);
        }
 
+       if (list->mailboxes == NULL) {
+               /* imapc list isn't used, but e.g. LAYOUT=none */
+               *flags_r = 0;
+               return 0;
+       }
        node = mailbox_tree_lookup(list->mailboxes, vname);
        if (node == NULL)
                *flags_r = MAILBOX_NONEXISTENT;
index 6eb5d8616ef24db7c06bd9f213406270642d2972..67bd5c50b8e0183d9a42cc3f46398716db9c3988 100644 (file)
@@ -424,7 +424,8 @@ static void
 imapc_storage_get_list_settings(const struct mail_namespace *ns ATTR_UNUSED,
                                struct mailbox_list_settings *set)
 {
-       set->layout = MAILBOX_LIST_NAME_IMAPC;
+       if (set->layout == NULL)
+               set->layout = MAILBOX_LIST_NAME_IMAPC;
        set->escape_char = IMAPC_LIST_ESCAPE_CHAR;
 }