From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34164) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cy04I-0006ei-Pm for guix-patches@gnu.org; Tue, 11 Apr 2017 13:59:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cy04E-0002HU-Vr for guix-patches@gnu.org; Tue, 11 Apr 2017 13:59:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:45038) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cy04E-0002HB-RR for guix-patches@gnu.org; Tue, 11 Apr 2017 13:59:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1cy04E-0007mF-G4 for guix-patches@gnu.org; Tue, 11 Apr 2017 13:59:02 -0400 Subject: bug#26446: [PATCH 1/1] gnu: dovecot: Update to 2.2.29 [fixes CVE-2017-2669]. Resent-Message-ID: From: Kei Kebreau In-Reply-To: <2919fdbaede514be581f29e0edc6531d3f7333af.1491930076.git.leo@famulari.name> (Leo Famulari's message of "Tue, 11 Apr 2017 13:01:16 -0400") References: <2919fdbaede514be581f29e0edc6531d3f7333af.1491930076.git.leo@famulari.name> Date: Tue, 11 Apr 2017 13:58:32 -0400 Message-ID: <87lgr63jxz.fsf@openmailbox.org> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Leo Famulari Cc: 26446@debbugs.gnu.org --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Leo Famulari writes: > * gnu/packages/mail.scm (dovecot): Update to 2.2.29. > [source]: Use 'dovecot-fix-failing-test.patch'. > * gnu/packages/patches/dovecot-fix-failing-test.patch: New file. > * gnu/local.mk (dist_patch_DATA): Add it. > --- > gnu/local.mk | 1 + > gnu/packages/mail.scm | 8 +- > .../patches/dovecot-fix-failing-test.patch | 118 +++++++++++++++= ++++++ > 3 files changed, 124 insertions(+), 3 deletions(-) > create mode 100644 gnu/packages/patches/dovecot-fix-failing-test.patch > > diff --git a/gnu/local.mk b/gnu/local.mk > index f3a4e54af..212228d5c 100644 > --- a/gnu/local.mk > +++ b/gnu/local.mk > @@ -539,6 +539,7 @@ dist_patch_DATA =3D \ > %D%/packages/patches/diffutils-gets-undeclared.patch \ > %D%/packages/patches/doc++-include-directives.patch \ > %D%/packages/patches/doc++-segfault-fix.patch \ > + %D%/packages/patches/dovecot-fix-failing-test.patch \ > %D%/packages/patches/doxygen-test.patch \ > %D%/packages/patches/elfutils-tests-ptrace.patch \ > %D%/packages/patches/elixir-disable-failing-tests.patch \ > diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm > index 49fdb32e8..1a6c505ef 100644 > --- a/gnu/packages/mail.scm > +++ b/gnu/packages/mail.scm > @@ -1086,15 +1086,17 @@ facilities for checking incoming mail.") > (define-public dovecot > (package > (name "dovecot") > - (version "2.2.28") > + (version "2.2.29") > (source > (origin > (method url-fetch) > (uri (string-append "https://www.dovecot.org/releases/" > (version-major+minor version) "/" > name "-" version ".tar.gz")) > - (sha256 (base32 > - "098zpkmkk93372qnv6drgbfg8hp5mynspzc1735qgar6wdcqya70"))= )) > + (patches (search-patches "dovecot-fix-failing-test.patch")) > + (sha256 > + (base32 > + "19irf7b5mjqq68mrpdd38gxc0zp2nqib942kjp3aif3f2acylffr")))) > (build-system gnu-build-system) > (native-inputs > `(("pkg-config" ,pkg-config))) > diff --git a/gnu/packages/patches/dovecot-fix-failing-test.patch b/gnu/pa= ckages/patches/dovecot-fix-failing-test.patch > new file mode 100644 > index 000000000..343bab03f > --- /dev/null > +++ b/gnu/packages/patches/dovecot-fix-failing-test.patch > @@ -0,0 +1,118 @@ > +This patch fixes a test failure in dovecot 2.2.29, like this [0]: > + > +------ > +Making check in lib-imap-client > +make[2]: Entering directory > +`/builddir/build/BUILD/dovecot-2.2.29/src/lib-imap-client' > +for bin in test-imapc-client; do \ > + if ! ./$bin; then exit 1; fi; \ > + done > +Warning: imapc(127.0.0.1:0): connect(127.0.0.1, 0) failed: Connection > +refused - reconnecting (delay 10 ms) > +Error: imapc(127.0.0.1:0): connect(127.0.0.1, 0) failed: Connection > +refused - disconnecting > +test: random seed #1 was 1492054294 > +imapc connect failed ................................................. := ok > +Warning: imapc(127.0.0.1:42704): connect(127.0.0.1, 42704) timed out > +after 0 seconds - reconnecting (delay 0 ms) > +Error: imapc(127.0.0.1:42704): connect(127.0.0.1, 42704) timed out after > +0 seconds - disconnecting > +imapc banner hangs ................................................... := ok > +Warning: imapc(127.0.0.1:36762): Authentication timed out after 0 > +seconds - reconnecting (delay 0 ms) > +Error: imapc(127.0.0.1:36762): Authentication failed: Disconnected from > +server > +imapc login hangs .................................................... := ok > +test-imapc-client.c:358: Assert failed: test_imapc_cmd_last_reply_pop() > +=3D=3D IMAPC_COMMAND_STATE_OK > +imapc reconnect ...................................................... : > +FAILED > +imapc reconnect resend commands ...................................... := ok > +imapc reconnect resend commands failed ............................... := ok > +imapc reconnect mailbox .............................................. := ok > +1 / 7 tests failed > +------ > + > +Patch copied from upstream source repository: > + > +https://github.com/dovecot/core/commit/3a1c64363a64cdfe9153eb6292d8923f3= 8955d82 > + > +[0] > +https://dovecot.org/pipermail/dovecot/2017-April/107751.html > + > +From 3a1c64363a64cdfe9153eb6292d8923f38955d82 Mon Sep 17 00:00:00 2001 > +From: Timo Sirainen > +Date: Mon, 10 Apr 2017 17:07:28 +0300 > +Subject: [PATCH] lib-imap-client: Fix reconnection > + > +There was already code for reconnection. We just shouldn't have gone very > +far in imapc_connection_connect() if we were still waiting for reconnect= ion > +delay to pass. > +--- > + src/lib-imap-client/imapc-connection.c | 25 +++++++++---------------- > + 1 file changed, 9 insertions(+), 16 deletions(-) > + > +diff --git a/src/lib-imap-client/imapc-connection.c b/src/lib-imap-clien= t/imapc-connection.c > +index 95067e6..6eaf1ab 100644 > +--- a/src/lib-imap-client/imapc-connection.c > ++++ b/src/lib-imap-client/imapc-connection.c > +@@ -130,6 +130,7 @@ struct imapc_connection { > + struct timeout *to_throttle, *to_throttle_shrink; > +=20 > + unsigned int reconnecting:1; > ++ unsigned int reconnect_waiting:1; > + unsigned int reconnect_ok:1; > + unsigned int idling:1; > + unsigned int idle_stopping:1; > +@@ -504,6 +505,7 @@ static bool imapc_connection_can_reconnect(struct im= apc_connection *conn) > + static void imapc_connection_reconnect(struct imapc_connection *conn) > + { > + conn->reconnect_ok =3D FALSE; > ++ conn->reconnect_waiting =3D FALSE; > +=20 > + if (conn->selected_box !=3D NULL) > + imapc_client_mailbox_reconnect(conn->selected_box); > +@@ -536,6 +538,7 @@ imapc_connection_try_reconnect(struct imapc_connecti= on *conn, > + imapc_connection_disconnect_full(conn, TRUE); > + conn->to =3D timeout_add(delay_msecs, imapc_connection_reconnect, co= nn); > + conn->reconnect_count++; > ++ conn->reconnect_waiting =3D TRUE; > + } > + } > + } > +@@ -1785,6 +1788,12 @@ void imapc_connection_connect(struct imapc_connec= tion *conn) > +=20 > + if (conn->fd !=3D -1 || conn->dns_lookup !=3D NULL) > + return; > ++ if (conn->reconnect_waiting) { > ++ /* wait for the reconnection delay to finish before > ++ doing anything. */ > ++ return; > ++ } > ++ > + conn->reconnecting =3D FALSE; > + /* if we get disconnected before we've finished all the pending > + commands, don't reconnect */ > +@@ -1792,22 +1801,6 @@ void imapc_connection_connect(struct imapc_connec= tion *conn) > + array_count(&conn->cmd_send_queue); > +=20 > + imapc_connection_input_reset(conn); > +- > +- int msecs_since_last_connect =3D > +- timeval_diff_msecs(&ioloop_timeval, &conn->last_connect); > +- if (!conn->reconnect_ok && > +- msecs_since_last_connect < (int)conn->client->set.connect_retry_in= terval_msecs) { > +- if (conn->to !=3D NULL) > +- timeout_remove(&conn->to); > +- conn->reconnecting =3D TRUE; > +- imapc_connection_set_disconnected(conn); > +- /* don't wait longer than necessary */ > +- unsigned int delay_msecs =3D > +- conn->client->set.connect_retry_interval_msecs - > +- msecs_since_last_connect; > +- conn->to =3D timeout_add(delay_msecs, imapc_connection_reconnect, con= n); > +- return; > +- } > + conn->last_connect =3D ioloop_timeval; > +=20 > + if (conn->client->set.debug) { What a coincidence! I was just looking at upgrading this package. LGTM. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEg7ZwOtzKO2lLzi2m5qXuPBlGeg0FAljtGUgACgkQ5qXuPBlG eg0xcg/7BReB5AuId469HUn/ZSTX+sNkwXRwgnjYeSRjQmjxguIM89RbSJVBIQvJ IRsJyvAODGfg2tGjBVfzmcxUi6A5g7blUtu8oOqzGMFr3Nk0eCK1vTYzi7kFux8N lk6SYwzCcqydWNOYmuuOZ6APjWoY5cR/4dXCEvrYrCiozHTMcYPz7JdOG8fLLMux s5R4ZabdSQLSIWQdmtwFzYPq2SPR/symv9M7DygjJhX/tLZDEBoTYGTCsbRoquNS dVo36ubmkLyAV/axwUWOvcwqtd5iPWDvoIN29xv1zP9Ru5Y+p/Vv3ZdRDuUYxi9+ 565POrDY9iuptaFibPYvhkALu7pmcTJsmwsh4LoSnAtD87Uis2EsvO29xaFLoFFd HQrXJ3X62awJsVLTVr4MC19FF3NosP/8/+8OEjD2YYvNyqXMAMRNbh6XyDfl4R4g e5F6VliKlLTyWCkWVyvhiRD2GRxjhKIT4PxibtZYQVBqZpVouP6FqrY8QU5VZJ3A JMiBJM2osNyS/z0FjmwrLmFjeYDrrKzpyDJOiR3Ebth0HDeA/Bagb1NttKsSk+Ih UvFkq2KV8Hqpps0F93RWSkHU2v1sZqXDA/+C+q01rzzXP+pRvYweg5G/LBt2VBxj QD9aGWuNVL0Z05xw2eB0yBdzuSYeOOwXcVuMwlsco/s/14rRmh0= =e553 -----END PGP SIGNATURE----- --=-=-=--