]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Avoid crashes if listing subscriptions for a namespace that can't have...
authorTimo Sirainen <tss@iki.fi>
Tue, 6 Dec 2011 21:51:09 +0000 (23:51 +0200)
committerTimo Sirainen <tss@iki.fi>
Tue, 6 Dec 2011 21:51:09 +0000 (23:51 +0200)
i.e. the namespace and its parents all have subscriptions=no

src/lib-storage/mailbox-list-iter.c

index 3dbabe6f70d2e2b7d1cb71eac036eb87553a6acf..5f6cdf1db64f9e6022a85aa033626f7bcb7c5be8 100644 (file)
@@ -61,7 +61,12 @@ static int mailbox_list_subscriptions_refresh(struct mailbox_list *list)
                ns = mail_namespace_find_subscribable(ns->user->namespaces,
                                                      ns->prefix);
                if (ns == NULL) {
-                       /* no subscriptions */
+                       /* no subscriptions. avoid crashes by initializing
+                          a subscriptions tree. */
+                       if (list->subscriptions == NULL) {
+                               char sep = mail_namespace_get_sep(list->ns);
+                               list->subscriptions = mailbox_tree_init(sep);
+                       }
                        return 0;
                }
        }