Accepting request 591874 from server:mail

- update to 2.3.1
- update pigeonhole to 0.5.1

OBS-URL: https://build.opensuse.org/request/show/591874
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/dovecot23?expand=0&rev=5
This commit is contained in:
Dominique Leuenberger 2018-03-29 09:57:08 +00:00 committed by Git OBS Bridge
commit a3927deb17
8 changed files with 87 additions and 203 deletions

View File

@ -1,28 +0,0 @@
From 23da0fa1b30cc11bcc1d467674a0950c527e9ff1 Mon Sep 17 00:00:00 2001
From: Timo Sirainen <timo.sirainen@dovecot.fi>
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);

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:56356d14b10c45aa472074e85bfc582c2f08a15a43ecf24f481df39b206efad2
size 1783039

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e3b0aa59261881bcb0d33a6c398f3cb5f9f75e077e67bae175cf33c362577547
size 1792702

View File

@ -1,162 +0,0 @@
From 2bf919786518d138cc07d9cc21e14ad5e07e5e56 Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan.bosch@dovecot.fi>
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 <stephan.bosch@dovecot.fi>
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 <stephan.bosch@dovecot.fi>
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 <stephan.bosch@dovecot.fi>
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);
}
}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ab772b3e214683aba347203c9391295552255c4d69afb324c7b8c8fc5ad6f153
size 6499984

3
dovecot-2.3.1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0883821b97fd02a084a84b9469a681f7e6edc56541d854b5419d98891c51fb93
size 6703089

View File

@ -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

View File

@ -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