From: Timo Sirainen Date: Mon, 14 Nov 2016 17:34:02 +0000 (+0100) Subject: lib-storage: Use mail_namespace_alloc() for mail_namespaces_init_location() X-Git-Tag: 2.2.27~119 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d97ad2e7bfd2ee702d2ca66f9913e9c56294c843;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Use mail_namespace_alloc() for mail_namespaces_init_location() Based on patch by Jeff Sipek --- diff --git a/src/lib-storage/mail-namespace.c b/src/lib-storage/mail-namespace.c index e52e348771..0c3b088fe6 100644 --- a/src/lib-storage/mail-namespace.c +++ b/src/lib-storage/mail-namespace.c @@ -436,17 +436,10 @@ int mail_namespaces_init_location(struct mail_user *user, const char *location, const struct mail_storage_settings *mail_set; const char *error, *driver, *location_source; bool default_location = FALSE; + int ret; i_assert(location == NULL || *location != '\0'); - ns = i_new(struct mail_namespace, 1); - ns->refcount = 1; - ns->type = MAIL_NAMESPACE_TYPE_PRIVATE; - ns->flags = NAMESPACE_FLAG_INBOX_USER | NAMESPACE_FLAG_INBOX_ANY | - NAMESPACE_FLAG_LIST_PREFIX | NAMESPACE_FLAG_SUBSCRIPTIONS; - ns->owner = user; - i_array_init(&ns->all_storages, 2); - inbox_set = p_new(user->pool, struct mail_namespace_settings, 1); *inbox_set = mail_namespace_default_settings; inbox_set->inbox = TRUE; @@ -491,11 +484,9 @@ int mail_namespaces_init_location(struct mail_user *user, const char *location, inbox_set->location, NULL); } - ns->set = inbox_set; - ns->unexpanded_set = unexpanded_inbox_set; - ns->mail_set = mail_set; - ns->prefix = i_strdup(""); - ns->user = user; + if ((ret = mail_namespace_alloc(user, inbox_set, unexpanded_inbox_set, + &ns, error_r)) < 0) + return ret; if (mail_storage_create(ns, driver, 0, &error) < 0) { if (*inbox_set->location != '\0') {