From: Timo Sirainen Date: Tue, 12 Dec 2017 19:36:07 +0000 (+0200) Subject: lib-storage: Make sure index root is created when it's the same as root directory X-Git-Tag: 2.2.36~31 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=27366c1b4258a8b3becfb1c3e30b0d3aa8798daa;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Make sure index root is created when it's the same as root directory Fixes errors about failing to create mailboxes.lock when the index root directory doesn't exist yet. --- diff --git a/src/lib-storage/mailbox-list.c b/src/lib-storage/mailbox-list.c index 0bf8f8438c..1da6241443 100644 --- a/src/lib-storage/mailbox-list.c +++ b/src/lib-storage/mailbox-list.c @@ -1653,27 +1653,23 @@ static bool mailbox_list_init_changelog(struct mailbox_list *list) int mailbox_list_mkdir_missing_index_root(struct mailbox_list *list) { - const char *root_dir, *index_dir; + const char *index_dir; int ret; if (list->index_root_dir_created) return 1; - /* if index root dir hasn't been created yet, do it now */ + /* If index root dir hasn't been created yet, do it now. + Do this here even if the index directory is the same as mail root + directory, because it may not have been created elsewhere either. */ ret = mailbox_list_get_root_path(list, MAILBOX_LIST_PATH_TYPE_INDEX, &index_dir); if (ret <= 0) return ret; - ret = mailbox_list_get_root_path(list, MAILBOX_LIST_PATH_TYPE_MAILBOX, - &root_dir); - if (ret <= 0) - return ret; - if (strcmp(root_dir, index_dir) != 0) { - if (mailbox_list_mkdir_root(list, index_dir, - MAILBOX_LIST_PATH_TYPE_INDEX) < 0) - return -1; - } + if (mailbox_list_mkdir_root(list, index_dir, + MAILBOX_LIST_PATH_TYPE_INDEX) < 0) + return -1; list->index_root_dir_created = TRUE; return 1; }