dovecot-2.0: acl: Fixed memory leaks.

dovecot at dovecot.org dovecot at dovecot.org
Mon Oct 18 18:07:20 EEST 2010


details:   http://hg.dovecot.org/dovecot-2.0/rev/7b47c5a321b9
changeset: 12299:7b47c5a321b9
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Oct 18 16:07:17 2010 +0100
description:
acl: Fixed memory leaks.

diffstat:

 src/plugins/acl/acl-mailbox-list.c |  10 ++++++++++
 src/plugins/acl/acl-mailbox.c      |   4 ++--
 2 files changed, 12 insertions(+), 2 deletions(-)

diffs (50 lines):

diff -r 94608c2debe2 -r 7b47c5a321b9 src/plugins/acl/acl-mailbox-list.c
--- a/src/plugins/acl/acl-mailbox-list.c	Mon Oct 18 15:38:58 2010 +0100
+++ b/src/plugins/acl/acl-mailbox-list.c	Mon Oct 18 16:07:17 2010 +0100
@@ -494,6 +494,14 @@
 	return alist->module_ctx.super.create_mailbox_dir(list, name, type);
 }
 
+static void acl_mailbox_list_deinit(struct mailbox_list *list)
+{
+	struct acl_mailbox_list *alist = ACL_LIST_CONTEXT(list);
+
+	acl_backend_deinit(&alist->rights.backend);
+	alist->module_ctx.super.deinit(list);
+}
+
 static void acl_mailbox_list_init_shared(struct mailbox_list *list)
 {
 	struct acl_mailbox_list *alist;
@@ -502,6 +510,7 @@
 	alist = p_new(list->pool, struct acl_mailbox_list, 1);
 	alist->module_ctx.super = *v;
 	list->vlast = &alist->module_ctx.super;
+	v->deinit = acl_mailbox_list_deinit;
 	v->iter_init = acl_mailbox_list_iter_init_shared;
 
 	MODULE_CONTEXT_SET(list, acl_mailbox_list_module, alist);
@@ -534,6 +543,7 @@
 	alist = p_new(list->pool, struct acl_mailbox_list, 1);
 	alist->module_ctx.super = *v;
 	list->vlast = &alist->module_ctx.super;
+	v->deinit = acl_mailbox_list_deinit;
 	v->iter_init = acl_mailbox_list_iter_init;
 	v->iter_next = acl_mailbox_list_iter_next;
 	v->iter_deinit = acl_mailbox_list_iter_deinit;
diff -r 94608c2debe2 -r 7b47c5a321b9 src/plugins/acl/acl-mailbox.c
--- a/src/plugins/acl/acl-mailbox.c	Mon Oct 18 15:38:58 2010 +0100
+++ b/src/plugins/acl/acl-mailbox.c	Mon Oct 18 16:07:17 2010 +0100
@@ -510,10 +510,10 @@
 	abox = p_new(box->pool, struct acl_mailbox, 1);
 	abox->module_ctx.super = *v;
 	box->vlast = &abox->module_ctx.super;
-	abox->aclobj = acl_object_init_from_name(alist->rights.backend,
-						 mailbox_get_name(box));
 
 	if ((box->flags & MAILBOX_FLAG_IGNORE_ACLS) == 0) {
+		abox->aclobj = acl_object_init_from_name(alist->rights.backend,
+							 mailbox_get_name(box));
 		abox->acl_enabled = TRUE;
 		v->is_readonly = acl_is_readonly;
 		v->allow_new_keywords = acl_allow_new_keywords;


More information about the dovecot-cvs mailing list