From: Timo Sirainen Date: Mon, 5 Apr 2010 00:07:14 +0000 (+0300) Subject: lib-storage: Don't crash if root mail directory isn't given. X-Git-Tag: 2.0.beta5~220 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=34c28a6c5bd2089a09ef6105da31418e2d6c21d5;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Don't crash if root mail directory isn't given. --HG-- branch : HEAD --- diff --git a/src/lib-storage/mail-storage.c b/src/lib-storage/mail-storage.c index d21d141dc2..a26a781c57 100644 --- a/src/lib-storage/mail-storage.c +++ b/src/lib-storage/mail-storage.c @@ -130,7 +130,7 @@ mail_storage_get_class(struct mail_namespace *ns, const char *driver, "Unknown mail storage driver %s", driver); return NULL; } - i_assert(list_set->root_dir != NULL); + storage_class->v.get_list_settings(ns, list_set); return storage_class; } @@ -154,7 +154,6 @@ mail_storage_get_class(struct mail_namespace *ns, const char *driver, } return NULL; } - static int mail_storage_create_root(struct mailbox_list *list, enum mail_storage_flags flags, const char **error_r) @@ -256,8 +255,9 @@ int mail_storage_create(struct mail_namespace *ns, const char *driver, return -1; } - if ((flags & MAIL_STORAGE_FLAG_NO_AUTODETECTION) != 0 && - list_set.root_dir == NULL) { + if ((list_set.root_dir == NULL || *list_set.root_dir == '\0') && + (driver != NULL || + (flags & MAIL_STORAGE_FLAG_NO_AUTODETECTION) != 0)) { *error_r = "Root mail directory not given"; return -1; }