Mercurial > dovecot > original-hg > dovecot-1.2
changeset 8472:ae30ea8532ee HEAD
Changed mail_user refcounting to fix deinitialization.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 21 Nov 2008 21:19:16 +0200 |
parents | f82ba0d5ed30 |
children | 81bc28227b6c |
files | src/lib-storage/mail-namespace.c |
diffstat | 1 files changed, 1 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/mail-namespace.c Fri Nov 21 19:56:42 2008 +0200 +++ b/src/lib-storage/mail-namespace.c Fri Nov 21 21:19:16 2008 +0200 @@ -29,7 +29,7 @@ static void mail_namespace_free(struct mail_namespace *ns) { - if (ns->owner != NULL) + if (ns->owner != ns->user && ns->owner != NULL) mail_user_unref(&ns->owner); i_free(ns->prefix); i_free(ns); @@ -65,7 +65,6 @@ if (type == NULL || *type == '\0' || strncmp(type, "private", 7) == 0) { ns->type = NAMESPACE_PRIVATE; ns->owner = user; - mail_user_ref(ns->owner); } else if (strncmp(type, "shared", 6) == 0) ns->type = NAMESPACE_SHARED; else if (strncmp(type, "public", 6) == 0) @@ -252,7 +251,6 @@ ns->prefix = i_strdup(""); ns->user = user; ns->owner = user; - mail_user_ref(ns->owner); if (mail_storage_create(ns, NULL, mail, flags, lock_method, &error) < 0) { @@ -283,7 +281,6 @@ ns = i_new(struct mail_namespace, 1); ns->user = user; ns->owner = user; - mail_user_ref(ns->owner); ns->prefix = i_strdup(""); ns->flags = NAMESPACE_FLAG_INBOX | NAMESPACE_FLAG_LIST_PREFIX | NAMESPACE_FLAG_SUBSCRIPTIONS;