diff --git a/4ff4bd024a9b6e7973b76b186ce085c2ca669d3e.patch b/4ff4bd024a9b6e7973b76b186ce085c2ca669d3e.patch new file mode 100644 index 0000000..8b7142a --- /dev/null +++ b/4ff4bd024a9b6e7973b76b186ce085c2ca669d3e.patch @@ -0,0 +1,49 @@ +From 4ff4bd024a9b6e7973b76b186ce085c2ca669d3e Mon Sep 17 00:00:00 2001 +From: Aki Tuomi +Date: Thu, 24 May 2018 12:48:58 +0000 +Subject: [PATCH] acl: Fix return value of acl_attribute_get_acl + +If matching acl entry is not found, it must return 0 +and not 1 because it did not find anything. + +Fixes dsync: Panic: file mailbox-attribute.c: line 362 (mailbox_attribute_get_stream): assertion failed: (value_r->value != NULL || value_r->value_stream != NULL) + +Broken in 37c72fa0cd3f1d74d79b64afb3fb6da5ffd4fe3a + +Found by @dl8bh +--- + src/plugins/acl/acl-attributes.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/src/plugins/acl/acl-attributes.c b/src/plugins/acl/acl-attributes.c +index 2499a30f9c..f0d3177de4 100644 +--- a/src/plugins/acl/acl-attributes.c ++++ b/src/plugins/acl/acl-attributes.c +@@ -60,7 +60,7 @@ static int acl_attribute_get_acl(struct mailbox *box, const char *key, + struct acl_object_list_iter *iter; + struct acl_rights rights, wanted_rights; + const char *id; +- int ret; ++ int ret = 0; + + i_zero(value_r); + +@@ -88,11 +88,17 @@ static int acl_attribute_get_acl(struct mailbox *box, const char *key, + rights.id_type == wanted_rights.id_type && + null_strcmp(rights.identifier, wanted_rights.identifier) == 0) { + value_r->value = acl_rights_export(&rights); ++ ret = 1; + break; + } + } +- if ((ret = acl_object_list_deinit(&iter)) < 0) ++ /* the return value here cannot be used, because this function ++ needs to return whether it actually matched something ++ or not */ ++ if (acl_object_list_deinit(&iter) < 0) { + mail_storage_set_internal_error(box->storage); ++ ret = -1; ++ } + return ret; + } + diff --git a/dovecot23.changes b/dovecot23.changes index 6270e66..5a16e8b 100644 --- a/dovecot23.changes +++ b/dovecot23.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Jul 13 21:23:16 UTC 2018 - mrueckert@suse.de + +- added + https://github.com/dovecot/core/commit/4ff4bd024a9b6e7973b76b186ce085c2ca669d3e.patch + ------------------------------------------------------------------- Wed Jul 11 14:17:57 UTC 2018 - mrueckert@suse.de diff --git a/dovecot23.spec b/dovecot23.spec index 2b28d90..fc5e19b 100644 --- a/dovecot23.spec +++ b/dovecot23.spec @@ -136,6 +136,7 @@ Source11: http://pigeonhole.dovecot.org/releases/%{dovecot_branch}/%{dovec Source12: dovecot23.keyring Patch: dovecot-2.3.0-dont_use_etc_ssl_certs.patch Patch1: dovecot-2.3.0-better_ssl_defaults.patch +Patch2: https://github.com/dovecot/core/commit/4ff4bd024a9b6e7973b76b186ce085c2ca669d3e.patch Summary: IMAP and POP3 Server Written Primarily with Security in Mind License: BSD-3-Clause AND LGPL-2.1-or-later AND MIT Group: Productivity/Networking/Email/Servers