From 319672653d9882ba5ee8d1543ba04cb0285f6fb3d797274181f5b20c1d4ac0e8 Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Wed, 28 Mar 2018 09:15:55 +0000 Subject: [PATCH] - update to 2.3.1 - update pigeonhole to 0.5.1 OBS-URL: https://build.opensuse.org/package/show/server:mail/dovecot23?expand=0&rev=15 --- ...0fa1b30cc11bcc1d467674a0950c527e9ff1.patch | 28 --- dovecot-2.3-pigeonhole-0.5.0.1.tar.gz | 3 - dovecot-2.3-pigeonhole-0.5.1.tar.gz | 3 + dovecot-2.3.0.1-over-quota-lmtp-crash.patch | 162 ------------------ dovecot-2.3.0.1.tar.gz | 3 - dovecot-2.3.1.tar.gz | 3 + dovecot23.changes | 77 +++++++++ dovecot23.spec | 11 +- 8 files changed, 87 insertions(+), 203 deletions(-) delete mode 100644 23da0fa1b30cc11bcc1d467674a0950c527e9ff1.patch delete mode 100644 dovecot-2.3-pigeonhole-0.5.0.1.tar.gz create mode 100644 dovecot-2.3-pigeonhole-0.5.1.tar.gz delete mode 100644 dovecot-2.3.0.1-over-quota-lmtp-crash.patch delete mode 100644 dovecot-2.3.0.1.tar.gz create mode 100644 dovecot-2.3.1.tar.gz diff --git a/23da0fa1b30cc11bcc1d467674a0950c527e9ff1.patch b/23da0fa1b30cc11bcc1d467674a0950c527e9ff1.patch deleted file mode 100644 index 6bf1501..0000000 --- a/23da0fa1b30cc11bcc1d467674a0950c527e9ff1.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 23da0fa1b30cc11bcc1d467674a0950c527e9ff1 Mon Sep 17 00:00:00 2001 -From: Timo Sirainen -Date: Sat, 6 Jan 2018 21:22:11 +0200 -Subject: [PATCH] ostream-zlib: Ignore missing finish if parent stream is - ignoring errors - -This fixes panic with imap_zlib plugin when client enables the IMAP COMPRESS -extension and disconnects: - -Panic: file ostream-zlib.c: line 36 (o_stream_zlib_close): assertion failed: (zstream->ostream.finished || zstream->ostream.ostream.stream_errno != 0) ---- - src/lib-compression/ostream-zlib.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/lib-compression/ostream-zlib.c b/src/lib-compression/ostream-zlib.c -index 848ecb7b89..e0b9a91416 100644 ---- a/src/lib-compression/ostream-zlib.c -+++ b/src/lib-compression/ostream-zlib.c -@@ -33,7 +33,8 @@ static void o_stream_zlib_close(struct iostream_private *stream, - struct zlib_ostream *zstream = (struct zlib_ostream *)stream; - - i_assert(zstream->ostream.finished || -- zstream->ostream.ostream.stream_errno != 0); -+ zstream->ostream.ostream.stream_errno != 0 || -+ zstream->ostream.error_handling_disabled); - (void)deflateEnd(&zstream->zs); - if (close_parent) - o_stream_close(zstream->ostream.parent); diff --git a/dovecot-2.3-pigeonhole-0.5.0.1.tar.gz b/dovecot-2.3-pigeonhole-0.5.0.1.tar.gz deleted file mode 100644 index e0f0279..0000000 --- a/dovecot-2.3-pigeonhole-0.5.0.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:56356d14b10c45aa472074e85bfc582c2f08a15a43ecf24f481df39b206efad2 -size 1783039 diff --git a/dovecot-2.3-pigeonhole-0.5.1.tar.gz b/dovecot-2.3-pigeonhole-0.5.1.tar.gz new file mode 100644 index 0000000..7f324ff --- /dev/null +++ b/dovecot-2.3-pigeonhole-0.5.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3b0aa59261881bcb0d33a6c398f3cb5f9f75e077e67bae175cf33c362577547 +size 1792702 diff --git a/dovecot-2.3.0.1-over-quota-lmtp-crash.patch b/dovecot-2.3.0.1-over-quota-lmtp-crash.patch deleted file mode 100644 index 5dd9010..0000000 --- a/dovecot-2.3.0.1-over-quota-lmtp-crash.patch +++ /dev/null @@ -1,162 +0,0 @@ -From 2bf919786518d138cc07d9cc21e14ad5e07e5e56 Mon Sep 17 00:00:00 2001 -From: Stephan Bosch -Date: Wed, 17 Jan 2018 21:26:44 +0100 -Subject: [PATCH] lmtp: local: Fix segfault occurring when quota is exceeded. - ---- - src/lmtp/lmtp-local.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/lmtp/lmtp-local.c b/src/lmtp/lmtp-local.c -index fa1ce5d869..5b5fe51a95 100644 ---- a/src/lmtp/lmtp-local.c -+++ b/src/lmtp/lmtp-local.c -@@ -133,7 +133,7 @@ static void - lmtp_local_rcpt_reply_overquota(struct lmtp_local_recipient *rcpt, - const char *error) - { -- struct smtp_address *address = rcpt->rcpt.rcpt->path; -+ struct smtp_address *address = rcpt->rcpt.path; - struct lda_settings *lda_set = - mail_storage_service_user_get_set(rcpt->service_user)[2]; - -From cdbcc8db8e0a04b2cbf6ca9f20b3ee7f7173552d Mon Sep 17 00:00:00 2001 -From: Stephan Bosch -Date: Wed, 31 Jan 2018 10:30:23 +0100 -Subject: [PATCH 1/3] lmtp: local: Make local variable for rcpt->rcpt.rcpt_cmd - in lmtp_local_rcpt_check_quota(). - ---- - src/lmtp/lmtp-local.c | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - -diff --git a/src/lmtp/lmtp-local.c b/src/lmtp/lmtp-local.c -index c770e35e5b..d0ee4b312e 100644 ---- a/src/lmtp/lmtp-local.c -+++ b/src/lmtp/lmtp-local.c -@@ -195,6 +195,7 @@ static int - lmtp_local_rcpt_check_quota(struct lmtp_local_recipient *rcpt) - { - struct client *client = rcpt->rcpt.client; -+ struct smtp_server_cmd_ctx *cmd = rcpt->rcpt.rcpt_cmd; - struct smtp_address *address = rcpt->rcpt.path; - struct mail_user *user; - struct mail_namespace *ns; -@@ -245,10 +246,10 @@ lmtp_local_rcpt_check_quota(struct lmtp_local_recipient *rcpt) - } - - if (ret < 0 && -- !smtp_server_command_is_replied(rcpt->rcpt.rcpt_cmd->cmd)) { -- smtp_server_reply(rcpt->rcpt.rcpt_cmd, -- 451, "4.3.0", "<%s> Temporary internal error", -- smtp_address_encode(address)); -+ !smtp_server_command_is_replied(cmd->cmd)) { -+ smtp_server_reply(cmd, 451, "4.3.0", -+ "<%s> Temporary internal error", -+ smtp_address_encode(address)); - } - return ret; - } - -From c23717da4af9d3275cb45cbc67faaa8daa353ec1 Mon Sep 17 00:00:00 2001 -From: Stephan Bosch -Date: Wed, 31 Jan 2018 10:34:11 +0100 -Subject: [PATCH 2/3] lmtp: local: Add explicit cmd parameter to - lmtp_local_rcpt_reply_overquota(). - -Using the RCPT cmd is only valid for the RCPT command and not when quota excess -is detected during DATA. That would cause a segmentation fault, since -rcpt->rcpt.rcpt_cmd == NULL. ---- - src/lmtp/lmtp-local.c | 15 +++++++-------- - 1 file changed, 7 insertions(+), 8 deletions(-) - -diff --git a/src/lmtp/lmtp-local.c b/src/lmtp/lmtp-local.c -index d0ee4b312e..c19c449e61 100644 ---- a/src/lmtp/lmtp-local.c -+++ b/src/lmtp/lmtp-local.c -@@ -134,6 +134,7 @@ lmtp_local_rcpt_deinit(struct lmtp_local_recipient *rcpt) - - static void - lmtp_local_rcpt_reply_overquota(struct lmtp_local_recipient *rcpt, -+ struct smtp_server_cmd_ctx *cmd, - const char *error) - { - struct smtp_address *address = rcpt->rcpt.path; -@@ -141,13 +142,11 @@ lmtp_local_rcpt_reply_overquota(struct lmtp_local_recipient *rcpt, - mail_storage_service_user_get_set(rcpt->service_user)[2]; - - if (lda_set->quota_full_tempfail) { -- smtp_server_reply(rcpt->rcpt.rcpt_cmd, -- 452, "4.2.2", "<%s> %s", -- smtp_address_encode(address), error); -+ smtp_server_reply(cmd, 452, "4.2.2", "<%s> %s", -+ smtp_address_encode(address), error); - } else { -- smtp_server_reply(rcpt->rcpt.rcpt_cmd, -- 552, "5.2.2", "<%s> %s", -- smtp_address_encode(address), error); -+ smtp_server_reply(cmd, 552, "5.2.2", "<%s> %s", -+ smtp_address_encode(address), error); - } - } - -@@ -232,7 +231,7 @@ lmtp_local_rcpt_check_quota(struct lmtp_local_recipient *rcpt) - if (ret < 0) { - error = mailbox_get_last_error(box, &mail_error); - if (mail_error == MAIL_ERROR_NOQUOTA) { -- lmtp_local_rcpt_reply_overquota(rcpt, error); -+ lmtp_local_rcpt_reply_overquota(rcpt, cmd, error); - } else { - i_error("mailbox_get_status(%s, STATUS_CHECK_OVER_QUOTA) " - "failed: %s", -@@ -623,7 +622,7 @@ lmtp_local_deliver(struct lmtp_local *local, - } else if (storage != NULL) { - error = mail_storage_get_last_error(storage, &mail_error); - if (mail_error == MAIL_ERROR_NOQUOTA) { -- lmtp_local_rcpt_reply_overquota(rcpt, error); -+ lmtp_local_rcpt_reply_overquota(rcpt, cmd, error); - } else { - smtp_server_reply_index(cmd, rcpt_idx, - 451, "4.2.0", "<%s> %s", - -From f8d9e6c977847a411af9986c9be62f74e4b06143 Mon Sep 17 00:00:00 2001 -From: Stephan Bosch -Date: Wed, 31 Jan 2018 10:27:54 +0100 -Subject: [PATCH 3/3] lmtp: local: Use recipient index in - lmtp_local_rcpt_reply_overquota(). - -When used during the DATA command, it should send a reply for the correct -recipient. During the RCPT command there is only one reply due. Added assert -that checks this. ---- - src/lmtp/lmtp-local.c | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - -diff --git a/src/lmtp/lmtp-local.c b/src/lmtp/lmtp-local.c -index c19c449e61..0b5e7e06ec 100644 ---- a/src/lmtp/lmtp-local.c -+++ b/src/lmtp/lmtp-local.c -@@ -138,15 +138,18 @@ lmtp_local_rcpt_reply_overquota(struct lmtp_local_recipient *rcpt, - const char *error) - { - struct smtp_address *address = rcpt->rcpt.path; -+ unsigned int rcpt_idx = rcpt->rcpt.index; - struct lda_settings *lda_set = - mail_storage_service_user_get_set(rcpt->service_user)[2]; - -+ i_assert(rcpt_idx == 0 || rcpt->rcpt.rcpt_cmd == NULL); -+ - if (lda_set->quota_full_tempfail) { -- smtp_server_reply(cmd, 452, "4.2.2", "<%s> %s", -- smtp_address_encode(address), error); -+ smtp_server_reply_index(cmd, rcpt_idx, 452, "4.2.2", "<%s> %s", -+ smtp_address_encode(address), error); - } else { -- smtp_server_reply(cmd, 552, "5.2.2", "<%s> %s", -- smtp_address_encode(address), error); -+ smtp_server_reply_index(cmd, rcpt_idx, 552, "5.2.2", "<%s> %s", -+ smtp_address_encode(address), error); - } - } - diff --git a/dovecot-2.3.0.1.tar.gz b/dovecot-2.3.0.1.tar.gz deleted file mode 100644 index 44e4794..0000000 --- a/dovecot-2.3.0.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ab772b3e214683aba347203c9391295552255c4d69afb324c7b8c8fc5ad6f153 -size 6499984 diff --git a/dovecot-2.3.1.tar.gz b/dovecot-2.3.1.tar.gz new file mode 100644 index 0000000..5e68353 --- /dev/null +++ b/dovecot-2.3.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0883821b97fd02a084a84b9469a681f7e6edc56541d854b5419d98891c51fb93 +size 6703089 diff --git a/dovecot23.changes b/dovecot23.changes index a0034ca..b65fc27 100644 --- a/dovecot23.changes +++ b/dovecot23.changes @@ -1,3 +1,80 @@ +------------------------------------------------------------------- +Wed Mar 28 09:02:33 UTC 2018 - mrueckert@suse.de + +- update pigeonhole to 0.5.1 + - Explicitly disallow UTF-8 in localpart in addresses parsed from + Sieve script. + - editheader extension: Corrected the stream position + calculations performed while making the modified message + available as a stream. Pigeonhole Sieve crashed in LMTP with + an assertion panic when the Sieve editheader extension was used + before the message was redirected. Experiments indicate that + the problem occurred only with LMTP and that LDA is not + affected. + - fileinto extension: Fix assert panic occurring when fileinto is + used without being listed in the require line, while the copy + extension is listed there. This is a very old bug. + - imapsieve plugin: Do not assert crash or log an error for + messages that disappear concurrently while applying Sieve + scripts. This event is now logged as a debug message. + - Sieve extprograms plugin: Large output from "execute" command + crashed delivery. Fixed buffering issue in code that handles + output from the external program. + +------------------------------------------------------------------- +Tue Mar 27 18:28:48 UTC 2018 - mrueckert@suse.de + +- update to 2.3.1 + * Submission server support improvements and bug fixes + - Lots of bug fixes to submission server + * API CHANGE: array_idx_modifiable will no longer allocate space + - Particularly affects how you should check MODULE_CONTEXT + result, or use REQUIRE_MODULE_CONTEXT. + + mail_attachment_detection_options setting controls when + $HasAttachment and $HasNoAttachment keywords are set for mails. + + imap: Support fetching body snippets using FETCH (SNIPPET) or + (SNIPPET (LAZY=FUZZY)) + + fs-compress: Automatically detect whether input is compressed + or not. Prefix the compression algorithm with "maybe-" to + enable the detection, for example: "compress:maybe-gz:6:..." + + Added settings to change dovecot.index* files' optimization + behavior. See https://wiki2.dovecot.org/IndexFiles#Settings + + Auth cache can now utilize auth workers to do password hash + verification by setting + auth_cache_verify_password_with_worker=yes. + + Added charset_alias plugin. See + https://wiki2.dovecot.org/Plugins/CharsetAlias + + imap_logout_format and pop3_logout_format settings now support + all of the generic variables (e.g. %{rip}, %{session}, etc.) + + Added auth_policy_check_before_auth, + auth_policy_check_after_auth and auth_policy_report_after_auth + settings. + + master: Support HAProxy PP2_TYPE_SSL command and set "secured" + variable appropriately + - Invalid UCS4 escape in HTML can cause crashes + - imap: IMAP COMPRESS -enabled client crashes on disconnect + - lmtp: Fix crash when user is over quota + - lib-lda: Parsing Return-Path header address fails when it + contains CFWS + - auth: SASL with Exim fails for AUTH commands without an initial + response + - imap: SPECIAL-USE capability isn't automatically added + - auth: LDAP subqueries do not support standard auth variables in + var-expand + - auth: SHA256-CRYPT and SHA512-CRYPT schemes do not work + - lib-index: mail_always/never_cache_fields are not used for + existing cache files + - imap: Fetching headers leaks memory if search doesn't find any + mails + - lmtp: ORCPT support in RCPT TO + - imap-login: Process sometimes ends up in infinite loop + - sdbox: Rolled back save/copy transaction doesn't delete temp + files + - mail: lock_method=dotlock causes crashes +- drop patches which are included in the update + 23da0fa1b30cc11bcc1d467674a0950c527e9ff1.patch + dovecot-2.3.0.1-over-quota-lmtp-crash.patch + ------------------------------------------------------------------- Tue Mar 13 10:40:48 UTC 2018 - dimstar@opensuse.org diff --git a/dovecot23.spec b/dovecot23.spec index 850bbd8..3dff4c7 100644 --- a/dovecot23.spec +++ b/dovecot23.spec @@ -17,11 +17,11 @@ Name: dovecot23 -Version: 2.3.0.1 +Version: 2.3.1 Release: 0 %define pkg_name dovecot -%define dovecot_version 2.3.0.1 -%define dovecot_pigeonhole_version 0.5.0.1 +%define dovecot_version 2.3.1 +%define dovecot_pigeonhole_version 0.5.1 %define dovecot_branch 2.3 %define dovecot_pigeonhole_source_dir %{pkg_name}-%{dovecot_branch}-pigeonhole-%{dovecot_pigeonhole_version} %define dovecot_pigeonhole_docdir %{_docdir}/%{pkg_name}/dovecot-pigeonhole @@ -133,8 +133,6 @@ Source8: dovecot-2.2-pigeonhole.configfiles Source9: dovecot-2.3-pigeonhole.configfiles Patch: dovecot-2.3.0-dont_use_etc_ssl_certs.patch Patch1: dovecot-2.3.0-better_ssl_defaults.patch -Patch2: dovecot-2.3.0.1-over-quota-lmtp-crash.patch -Patch3: 23da0fa1b30cc11bcc1d467674a0950c527e9ff1.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 @@ -314,8 +312,6 @@ dovecot tree. %setup -q -n %{pkg_name}-%{dovecot_version} -a 1 %patch -p1 %patch1 -p1 -%patch2 -p1 -%patch3 -p1 gzip -9v ChangeLog # Fix plugins dir. sed -i 's|#mail_plugin_dir = /usr/lib/dovecot|mail_plugin_dir = %{_libdir}/dovecot/modules|' doc/example-config/conf.d/10-mail.conf @@ -602,6 +598,7 @@ fi %{_libdir}/%{pkg_name}/modules/lib20_mail_log_plugin.so %{_libdir}/%{pkg_name}/modules/lib20_mailbox_alias_plugin.so %{_libdir}/%{pkg_name}/modules/lib20_notify_status_plugin.so +%{_libdir}/%{pkg_name}/modules/lib20_charset_alias_plugin.so %{_libdir}/%{pkg_name}/modules/lib20_expire_plugin.so %{_libdir}/%{pkg_name}/modules/lib20_var_expand_crypt.so %{_libdir}/%{pkg_name}/modules/lib20_zlib_plugin.so