2.3.11.3 on 32bit platforms
Christian Göttsche
cgzones at googlemail.com
Fri Aug 14 17:57:17 EEST 2020
See also the 32bit build failures on Debian:
https://buildd.debian.org/status/package.php?p=dovecot
There are some compiler warnings on 32bit architectures in test-mech.c
test-mech.c: In function ‘test_mechs’:
test-mech.c:326:61: warning: format ‘%lu’ expects argument of type
‘long unsigned int’, but argument 4 has type ‘unsigned int’
[-Wformat=]
326 | const char *testname = t_strdup_printf("auth mech %s %d/%lu",
| ~~^
| |
|
long unsigned int
| %u
test-mech.c:338:12: warning: passing argument 2 of
‘test_mech_construct_apop_challenge’ from incompatible pointer type
[-Wincompatible-pointer-types]
338 | &test_case->len);
| ^~~~~~~~~~~~~~~
| |
| size_t * {aka unsigned int *}
test-mech.c:195:77: note: expected ‘long unsigned int *’ but argument
is of type ‘size_t *’ {aka ‘unsigned int *’}
195 | test_mech_construct_apop_challenge(unsigned int connect_uid,
unsigned long *len_r)
|
~~~~~~~~~~~~~~~^~~~~
But the unit test still fails after a commit like:
diff --git a/src/auth/test-mech.c b/src/auth/test-mech.c
index cf05370..90c2215 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));
More information about the dovecot
mailing list