diff options
author | adamw <adamw@FreeBSD.org> | 2017-03-02 01:55:58 +0800 |
---|---|---|
committer | adamw <adamw@FreeBSD.org> | 2017-03-02 01:55:58 +0800 |
commit | 93607d923666b84e141200913977969e65cb5940 (patch) | |
tree | da7306acd284e65befed208d98697cd0c29ecd23 /mail | |
parent | 39696565da53b0b62edcc559bbb6a1fa1f21e72c (diff) | |
download | freebsd-ports-gnome-93607d923666b84e141200913977969e65cb5940.tar.gz freebsd-ports-gnome-93607d923666b84e141200913977969e65cb5940.tar.zst freebsd-ports-gnome-93607d923666b84e141200913977969e65cb5940.zip |
Add a patch from upstream that fixes a crash with the trash plugin:
Panic: file mail-namespace.c: line 709 (mail_namespace_find): assertion failed: (ns != NULL)
Bump PORTREVISION.
PR: 217364
Submitted by: Max Kostikov
Obtained from: https://github.com/dovecot/core/commit/326fb016a23480e4ff8dcc03dc80e76812859bd6.patch
Diffstat (limited to 'mail')
-rw-r--r-- | mail/dovecot2/Makefile | 1 | ||||
-rw-r--r-- | mail/dovecot2/files/patch-trash_plugin | 48 |
2 files changed, 49 insertions, 0 deletions
diff --git a/mail/dovecot2/Makefile b/mail/dovecot2/Makefile index 149b91fce9ed..b8debe5d3c28 100644 --- a/mail/dovecot2/Makefile +++ b/mail/dovecot2/Makefile @@ -14,6 +14,7 @@ PORTNAME= dovecot PORTVERSION= 2.2.28 +PORTREVISION= 1 CATEGORIES= mail ipv6 MASTER_SITES= https://www.dovecot.org/releases/${PORTVERSION:R}/ PKGNAMESUFFIX= 2 diff --git a/mail/dovecot2/files/patch-trash_plugin b/mail/dovecot2/files/patch-trash_plugin new file mode 100644 index 000000000000..065d3d06f847 --- /dev/null +++ b/mail/dovecot2/files/patch-trash_plugin @@ -0,0 +1,48 @@ +From 326fb016a23480e4ff8dcc03dc80e76812859bd6 Mon Sep 17 00:00:00 2001 +From: Aki Tuomi <aki.tuomi@dovecot.fi> +Date: Wed, 1 Mar 2017 09:15:29 +0200 +Subject: [PATCH] trash: Read settings after namespaces are loaded + +Fixes Panic: file mail-namespace.c: line 709 (mail_namespace_find): assertion failed: (ns != NULL) +--- + src/plugins/trash/trash-plugin.c | 22 ++++++++++++++++------ + 1 file changed, 16 insertions(+), 6 deletions(-) + +diff --git a/src/plugins/trash/trash-plugin.c b/src/plugins/trash/trash-plugin.c +index 7129d3d..2e12578 100644 +--- src/plugins/trash/trash-plugin.c ++++ src/plugins/trash/trash-plugin.c +@@ -348,17 +348,27 @@ trash_mail_user_created(struct mail_user *user) + } else { + tuser = p_new(user->pool, struct trash_user, 1); + MODULE_CONTEXT_SET(user, trash_user_module, tuser); ++ } ++} + +- if (read_configuration(user, env) == 0) { +- trash_next_quota_test_alloc = +- quser->quota->set->test_alloc; +- quser->quota->set->test_alloc = trash_quota_test_alloc; +- } ++static void ++trash_mail_namespaces_created(struct mail_namespace *namespaces) ++{ ++ struct mail_user *user = namespaces->user; ++ struct trash_user *tuser = TRASH_USER_CONTEXT(user); ++ struct quota_user *quser = QUOTA_USER_CONTEXT(user); ++ const char *env = mail_user_plugin_getenv(user, "trash"); ++ ++ if (tuser != NULL && read_configuration(user, env) == 0) { ++ trash_next_quota_test_alloc = ++ quser->quota->set->test_alloc; ++ quser->quota->set->test_alloc = trash_quota_test_alloc; + } + } + + static struct mail_storage_hooks trash_mail_storage_hooks = { +- .mail_user_created = trash_mail_user_created ++ .mail_user_created = trash_mail_user_created, ++ .mail_namespaces_created = trash_mail_namespaces_created, + }; + + void trash_plugin_init(struct module *module) |