]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Avoid crash with pointless configs.
authorTimo Sirainen <tss@iki.fi>
Mon, 5 Apr 2010 05:59:04 +0000 (08:59 +0300)
committerTimo Sirainen <tss@iki.fi>
Mon, 5 Apr 2010 05:59:04 +0000 (08:59 +0300)
--HG--
branch : HEAD

src/lib-storage/mailbox-list.c

index 0b3c58933545580e7c2048f2483918a1a7ec9ef2..cfe9eece5d409cbadeed173a6131fe590e5e8cbc 100644 (file)
@@ -151,13 +151,15 @@ int mailbox_list_create(const char *driver, struct mail_namespace *ns,
        list->changelog_timestamp = (time_t)-1;
 
        /* copy settings */
-       list->set.root_dir = p_strdup(list->pool, set->root_dir);
-       list->set.index_dir = set->index_dir == NULL ||
-               strcmp(set->index_dir, set->root_dir) == 0 ? NULL :
-               p_strdup(list->pool, set->index_dir);
-       list->set.control_dir = set->control_dir == NULL ||
-               strcmp(set->control_dir, set->root_dir) == 0 ? NULL :
-               p_strdup(list->pool, set->control_dir);
+       if (set->root_dir != NULL) {
+               list->set.root_dir = p_strdup(list->pool, set->root_dir);
+               list->set.index_dir = set->index_dir == NULL ||
+                       strcmp(set->index_dir, set->root_dir) == 0 ? NULL :
+                       p_strdup(list->pool, set->index_dir);
+               list->set.control_dir = set->control_dir == NULL ||
+                       strcmp(set->control_dir, set->root_dir) == 0 ? NULL :
+                       p_strdup(list->pool, set->control_dir);
+       }
 
        list->set.inbox_path = p_strdup(list->pool, set->inbox_path);
        list->set.subscription_fname =