import dovecot-2.3.8-6.el8
This commit is contained in:
parent
7e699f8952
commit
a9ff1a8a7a
73
SOURCES/dovecot-2.3.8-a668d767.patch
Normal file
73
SOURCES/dovecot-2.3.8-a668d767.patch
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
diff --git a/src/lib-mail/message-parser.c b/src/lib-mail/message-parser.c
|
||||||
|
index 011dea9050..8baf622e59 100644
|
||||||
|
--- a/src/lib-mail/message-parser.c
|
||||||
|
+++ b/src/lib-mail/message-parser.c
|
||||||
|
@@ -138,6 +138,7 @@ message_part_append(struct message_parser_ctx *ctx)
|
||||||
|
struct message_part *parent = ctx->part;
|
||||||
|
struct message_part *part;
|
||||||
|
|
||||||
|
+ i_assert(!ctx->preparsed);
|
||||||
|
i_assert(parent != NULL);
|
||||||
|
i_assert((parent->flags & (MESSAGE_PART_FLAG_MULTIPART |
|
||||||
|
MESSAGE_PART_FLAG_MESSAGE_RFC822)) != 0);
|
||||||
|
@@ -171,12 +172,14 @@ static void message_part_finish(struct message_parser_ctx *ctx)
|
||||||
|
{
|
||||||
|
struct message_part **const *parent_next_partp;
|
||||||
|
|
||||||
|
- i_assert(ctx->nested_parts_count > 0);
|
||||||
|
- ctx->nested_parts_count--;
|
||||||
|
+ if (!ctx->preparsed) {
|
||||||
|
+ i_assert(ctx->nested_parts_count > 0);
|
||||||
|
+ ctx->nested_parts_count--;
|
||||||
|
|
||||||
|
- parent_next_partp = array_back(&ctx->next_part_stack);
|
||||||
|
- array_pop_back(&ctx->next_part_stack);
|
||||||
|
- ctx->next_part = *parent_next_partp;
|
||||||
|
+ parent_next_partp = array_back(&ctx->next_part_stack);
|
||||||
|
+ array_pop_back(&ctx->next_part_stack);
|
||||||
|
+ ctx->next_part = *parent_next_partp;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
message_size_add(&ctx->part->parent->body_size, &ctx->part->body_size);
|
||||||
|
message_size_add(&ctx->part->parent->body_size, &ctx->part->header_size);
|
||||||
|
diff --git a/src/lib-mail/test-message-parser.c b/src/lib-mail/test-message-parser.c
|
||||||
|
index 13984f939e..a00f0d6200 100644
|
||||||
|
--- a/src/lib-mail/test-message-parser.c
|
||||||
|
+++ b/src/lib-mail/test-message-parser.c
|
||||||
|
@@ -178,9 +178,10 @@ static void test_message_parser_small_blocks(void)
|
||||||
|
static void test_message_parser_stop_early(void)
|
||||||
|
{
|
||||||
|
struct message_parser_ctx *parser;
|
||||||
|
- struct istream *input;
|
||||||
|
+ struct istream *input, *input2;
|
||||||
|
struct message_part *parts;
|
||||||
|
struct message_block block;
|
||||||
|
+ const char *error;
|
||||||
|
unsigned int i;
|
||||||
|
pool_t pool;
|
||||||
|
int ret;
|
||||||
|
@@ -198,6 +199,24 @@ static void test_message_parser_stop_early(void)
|
||||||
|
&block)) > 0) ;
|
||||||
|
test_assert(ret == 0);
|
||||||
|
message_parser_deinit(&parser, &parts);
|
||||||
|
+
|
||||||
|
+ /* test preparsed - first re-parse everything with a stream
|
||||||
|
+ that sees EOF at this position */
|
||||||
|
+ input2 = i_stream_create_from_data(test_msg, i);
|
||||||
|
+ parser = message_parser_init(pool, input2, &set_empty);
|
||||||
|
+ while ((ret = message_parser_parse_next_block(parser,
|
||||||
|
+ &block)) > 0) ;
|
||||||
|
+ test_assert(ret == -1);
|
||||||
|
+ message_parser_deinit(&parser, &parts);
|
||||||
|
+
|
||||||
|
+ /* now parse from the parts */
|
||||||
|
+ i_stream_seek(input2, 0);
|
||||||
|
+ parser = message_parser_init_from_parts(parts, input2, &set_empty);
|
||||||
|
+ while ((ret = message_parser_parse_next_block(parser,
|
||||||
|
+ &block)) > 0) ;
|
||||||
|
+ test_assert(ret == -1);
|
||||||
|
+ test_assert(message_parser_deinit_from_parts(&parser, &parts, &error) == 0);
|
||||||
|
+ i_stream_unref(&input2);
|
||||||
|
}
|
||||||
|
|
||||||
|
i_stream_unref(&input);
|
20
SOURCES/dovecot-2.3.8-blockcount.patch
Normal file
20
SOURCES/dovecot-2.3.8-blockcount.patch
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
diff -up dovecot-2.3.8/src/lib-storage/index/index-mail-binary.c.blockcount dovecot-2.3.8/src/lib-storage/index/index-mail-binary.c
|
||||||
|
--- dovecot-2.3.8/src/lib-storage/index/index-mail-binary.c.blockcount 2020-12-02 11:34:10.229027593 +0100
|
||||||
|
+++ dovecot-2.3.8/src/lib-storage/index/index-mail-binary.c 2020-12-02 11:36:47.328933276 +0100
|
||||||
|
@@ -339,13 +339,14 @@ blocks_count_lines(struct binary_ctx *ct
|
||||||
|
i_stream_skip(full_input, skip);
|
||||||
|
cur_block_offset += skip;
|
||||||
|
|
||||||
|
- if (cur_block->input->eof) {
|
||||||
|
+ if (i_stream_read_eof(cur_block->input)) {
|
||||||
|
/* go to the next block */
|
||||||
|
- if (++block_idx == block_count) {
|
||||||
|
+ if (block_idx+1 == block_count) {
|
||||||
|
i_assert(i_stream_read_eof(full_input));
|
||||||
|
ret = -1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
+ block_idx++;
|
||||||
|
cur_block++;
|
||||||
|
cur_block_offset = 0;
|
||||||
|
}
|
@ -5,7 +5,7 @@ Name: dovecot
|
|||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 2.3.8
|
Version: 2.3.8
|
||||||
%global prever %{nil}
|
%global prever %{nil}
|
||||||
Release: 4%{?dist}
|
Release: 6%{?dist}
|
||||||
#dovecot itself is MIT, a few sources are PD, pigeonhole is LGPLv2
|
#dovecot itself is MIT, a few sources are PD, pigeonhole is LGPLv2
|
||||||
License: MIT and LGPLv2
|
License: MIT and LGPLv2
|
||||||
Group: System Environment/Daemons
|
Group: System Environment/Daemons
|
||||||
@ -55,6 +55,12 @@ Patch20: dovecot-2.3.8-CVE_2020_12673.patch
|
|||||||
Patch21: dovecot-2.3.8-CVE_2020_12674prereq.patch
|
Patch21: dovecot-2.3.8-CVE_2020_12674prereq.patch
|
||||||
Patch22: dovecot-2.3.8-CVE_2020_12674.patch
|
Patch22: dovecot-2.3.8-CVE_2020_12674.patch
|
||||||
|
|
||||||
|
# from upstream, for dovecot <= 2.3.11.3, rhbz#1894418
|
||||||
|
Patch23: dovecot-2.3.8-blockcount.patch
|
||||||
|
|
||||||
|
# from upstream, for dovecot < 2.3.11.3, rhbz#1888111
|
||||||
|
Patch24: dovecot-2.3.8-a668d767.patch
|
||||||
|
|
||||||
Source15: prestartscript
|
Source15: prestartscript
|
||||||
|
|
||||||
BuildRequires: openssl-devel, pam-devel, zlib-devel, bzip2-devel, libcap-devel
|
BuildRequires: openssl-devel, pam-devel, zlib-devel, bzip2-devel, libcap-devel
|
||||||
@ -69,6 +75,7 @@ BuildRequires: krb5-devel
|
|||||||
BuildRequires: quota-devel
|
BuildRequires: quota-devel
|
||||||
BuildRequires: xz-devel
|
BuildRequires: xz-devel
|
||||||
BuildRequires: lz4-devel
|
BuildRequires: lz4-devel
|
||||||
|
BuildRequires: multilib-rpm-config
|
||||||
#BuildRequires: libsodium-devel
|
#BuildRequires: libsodium-devel
|
||||||
#BuildRequires: libexttextcat-devel
|
#BuildRequires: libexttextcat-devel
|
||||||
#BuildRequires: libstemmer-devel
|
#BuildRequires: libstemmer-devel
|
||||||
@ -166,6 +173,8 @@ This package provides the development files for dovecot.
|
|||||||
%patch20 -p1 -b .CVE_2020_12673
|
%patch20 -p1 -b .CVE_2020_12673
|
||||||
%patch21 -p1 -b .CVE_2020_12674prereq
|
%patch21 -p1 -b .CVE_2020_12674prereq
|
||||||
%patch22 -p1 -b .CVE_2020_12674
|
%patch22 -p1 -b .CVE_2020_12674
|
||||||
|
%patch23 -p1 -b .blockcount
|
||||||
|
%patch24 -p1 -b .a668d767
|
||||||
pushd dovecot-2*3-pigeonhole-%{pigeonholever}
|
pushd dovecot-2*3-pigeonhole-%{pigeonholever}
|
||||||
|
|
||||||
popd
|
popd
|
||||||
@ -184,6 +193,7 @@ autoreconf -I . -fiv #required for aarch64 support
|
|||||||
%endif
|
%endif
|
||||||
%configure \
|
%configure \
|
||||||
INSTALL_DATA="install -c -p -m644" \
|
INSTALL_DATA="install -c -p -m644" \
|
||||||
|
--localstatedir=%{_rundir} \
|
||||||
--docdir=%{_docdir}/%{name} \
|
--docdir=%{_docdir}/%{name} \
|
||||||
--disable-static \
|
--disable-static \
|
||||||
--disable-rpath \
|
--disable-rpath \
|
||||||
@ -230,9 +240,11 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
|
|
||||||
make install DESTDIR=$RPM_BUILD_ROOT
|
make install DESTDIR=$RPM_BUILD_ROOT
|
||||||
|
|
||||||
#move doc dir back to build dir so doc macro in files section can use it
|
# move doc dir back to build dir so doc macro in files section can use it
|
||||||
mv $RPM_BUILD_ROOT/%{_docdir}/%{name} %{_builddir}/%{name}-%{version}%{?prever}/docinstall
|
mv $RPM_BUILD_ROOT/%{_docdir}/%{name} %{_builddir}/%{name}-%{version}%{?prever}/docinstall
|
||||||
|
|
||||||
|
# fix multilib issues
|
||||||
|
%multilib_fix_c_header --file %{_includedir}/dovecot/config.h
|
||||||
|
|
||||||
pushd dovecot-2*3-pigeonhole-%{pigeonholever}
|
pushd dovecot-2*3-pigeonhole-%{pigeonholever}
|
||||||
make install DESTDIR=$RPM_BUILD_ROOT
|
make install DESTDIR=$RPM_BUILD_ROOT
|
||||||
@ -525,6 +537,14 @@ make check
|
|||||||
%{_libdir}/%{name}/dict/libdriver_pgsql.so
|
%{_libdir}/%{name}/dict/libdriver_pgsql.so
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Dec 02 2020 Michal Hlavinka <mhlavink@redhat.com> - 1:2.3.8-6
|
||||||
|
- fix mail storage block count parsing (#1894418)
|
||||||
|
- MIME parser crashed when boundaries were wrong (#1888111)
|
||||||
|
- change run directory from /var/run to /run (#1805947)
|
||||||
|
|
||||||
|
* Mon Nov 02 2020 Michal Hlavinka <mhlavink@redhat.com> - 1:2.3.8-5
|
||||||
|
- multilib compatibility (#1853137)
|
||||||
|
|
||||||
* Fri Aug 07 2020 Michal Hlavinka <mhlavink@redhat.com> - 1:2.3.8-4
|
* Fri Aug 07 2020 Michal Hlavinka <mhlavink@redhat.com> - 1:2.3.8-4
|
||||||
- fix CVE-2020-12100 resource exhaustion via deeply nested MIME parts (#1866756)
|
- fix CVE-2020-12100 resource exhaustion via deeply nested MIME parts (#1866756)
|
||||||
- fix CVE-2020-12673 out of bound reads in dovecot NTLM implementation (#1866761)
|
- fix CVE-2020-12673 out of bound reads in dovecot NTLM implementation (#1866761)
|
||||||
|
Loading…
Reference in New Issue
Block a user