commit:     2fd41b355486a055f724150695e1cca74d0fdade
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Sat Sep  5 23:19:23 2020 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Sat Sep  5 23:45:17 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2fd41b35

net-mail/dovecot: fix auth mech APOP

Closes: https://bugs.gentoo.org/739504
Package-Manager: Portage-3.0.4, Repoman-3.0.1
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 net-mail/dovecot/dovecot-2.3.11.3.ebuild           |  2 +
 .../dovecot/files/dovecot-2.3.11.3-apop-fix.patch  | 60 ++++++++++++++++++++++
 2 files changed, 62 insertions(+)

diff --git a/net-mail/dovecot/dovecot-2.3.11.3.ebuild 
b/net-mail/dovecot/dovecot-2.3.11.3.ebuild
index 28775017b56..386cbfb5c53 100644
--- a/net-mail/dovecot/dovecot-2.3.11.3.ebuild
+++ b/net-mail/dovecot/dovecot-2.3.11.3.ebuild
@@ -69,6 +69,8 @@ RDEPEND="${DEPEND}
        acct-user/dovenull
        net-mail/mailbase"
 
+PATCHES=( "${FILESDIR}"/${P}-apop-fix.patch )
+
 pkg_setup() {
        if use managesieve && ! use sieve; then
                ewarn "managesieve USE flag selected but sieve USE flag 
unselected"

diff --git a/net-mail/dovecot/files/dovecot-2.3.11.3-apop-fix.patch 
b/net-mail/dovecot/files/dovecot-2.3.11.3-apop-fix.patch
new file mode 100644
index 00000000000..667b4829f1c
--- /dev/null
+++ b/net-mail/dovecot/files/dovecot-2.3.11.3-apop-fix.patch
@@ -0,0 +1,60 @@
+From 3c5917d1abee8f4af43b5016ddb897154912eb8d Mon Sep 17 00:00:00 2001
+From: Aki Tuomi <[email protected]>
+Date: Thu, 13 Aug 2020 19:13:49 +0300
+Subject: [PATCH 2/2] auth: test-mech - Fix type mismatch
+
+---
+ src/auth/test-mech.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/auth/test-mech.c b/src/auth/test-mech.c
+index 0a030a2be0..0a22ff46d0 100644
+--- a/src/auth/test-mech.c
++++ b/src/auth/test-mech.c
+@@ -192,7 +192,7 @@ static void test_mech_handle_challenge(struct auth_request 
*request,
+ }
+ 
+ static inline const unsigned char *
+-test_mech_construct_apop_challenge(unsigned int connect_uid, unsigned long 
*len_r)
++test_mech_construct_apop_challenge(unsigned int connect_uid, size_t *len_r)
+ {
+       string_t *apop_challenge = t_str_new(128);
+ 
+@@ -323,7 +323,7 @@ static void test_mechs(void)
+               struct test_case *test_case = &tests[running_test];
+               const struct mech_module *mech = test_case->mech;
+               struct auth_request *request;
+-              const char *testname = t_strdup_printf("auth mech %s %d/%lu",
++              const char *testname = t_strdup_printf("auth mech %s %d/%zu",
+                                                      mech->mech_name,
+                                                      running_test+1,
+                                                      N_ELEMENTS(tests));
+-- 
+2.11.0
+
+From 47ebfeef07d0908ba6b66344b0f630a21b81bcab Mon Sep 17 00:00:00 2001
+From: Aki Tuomi <[email protected]>
+Date: Thu, 13 Aug 2020 19:13:04 +0300
+Subject: [PATCH 1/2] auth: test-mech - Fix APOP challenge format
+
+---
+ src/auth/test-mech.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/auth/test-mech.c b/src/auth/test-mech.c
+index cf05370035..0a030a2be0 100644
+--- a/src/auth/test-mech.c
++++ b/src/auth/test-mech.c
+@@ -196,8 +196,8 @@ test_mech_construct_apop_challenge(unsigned int 
connect_uid, unsigned long *len_
+ {
+       string_t *apop_challenge = t_str_new(128);
+ 
+-      str_printfa(apop_challenge,"<%lx.%u.%"PRIdTIME_T"", (unsigned long) 
getpid(),
+-                  connect_uid, process_start_time+10);
++      str_printfa(apop_challenge,"<%lx.%lx.%"PRIxTIME_T".", (unsigned 
long)getpid(),
++                  (unsigned long)connect_uid, process_start_time+10);
+       str_append_data(apop_challenge, "\0testuser\0responseoflen16-", 26);
+       *len_r = apop_challenge->used;
+       return apop_challenge->data;
+-- 
+2.11.0

Reply via email to