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:
commit
a3927deb17
@ -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);
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:56356d14b10c45aa472074e85bfc582c2f08a15a43ecf24f481df39b206efad2
|
||||
size 1783039
|
3
dovecot-2.3-pigeonhole-0.5.1.tar.gz
Normal file
3
dovecot-2.3-pigeonhole-0.5.1.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e3b0aa59261881bcb0d33a6c398f3cb5f9f75e077e67bae175cf33c362577547
|
||||
size 1792702
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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
3
dovecot-2.3.1.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0883821b97fd02a084a84b9469a681f7e6edc56541d854b5419d98891c51fb93
|
||||
size 6703089
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user