Detection of HAVE_MYSQL_SSL_VERIFY_SERVER_CERT is broken
Tomas Volf via dovecot <[email protected]> Fri, 31 Jul 2026 00:02:13 +0200
| Newsgroups | gmane.mail.imap.dovecot |
|---|---|
| Message-ID | <[email protected]> |
Hello,
detection of HAVE_MYSQL_SSL_VERIFY_SERVER_CERT is currently broken, and
the macro is never defined. The test program fails, but for incorrect
reason.
--8<---------------cut here---------------start------------->8---
conftest.c:140:20: error: expected declaration specifiers or '...' before ',' token
140 | _au_m4_changequote(,)
| ^
conftest.c:140:21: error: expected declaration specifiers or '...' before ')' token
140 | _au_m4_changequote(,)
| ^
In file included from /gnu/store/6lmd3apzkmhwzj3yn0inyj484m9qml6y-mariadb-connector-c-3.4.5/include/mariadb/mysql.h:35,
from conftest.c:141:
/gnu/store/7iwcvd0gjrfq6bj7zvf3r59baw6vib5a-gcc-14.3.0-lib/lib/gcc/x86_64-unknown-linux-gnu/14.3.0/include/stdarg.h:103:9: error: unknown type name '__gnuc_va_list'
103 | typedef __gnuc_va_list va_list;
| ^~~~~~~~~~~~~~
--8<---------------cut here---------------end--------------->8---
Fix is to delete the only occurrence of _au_m4_changequote([,]) in the
m4/want_mysql.m4 file.
However, that will reveal a compilation error here:
--8<---------------cut here---------------start------------->8---
#ifdef HAVE_MYSQL_SSL_VERIFY_SERVER_CERT
int ssl_verify_server_cert =
ssl_set->ssl_client_require_valid_cert ? 1 : 0;
mysql_options(db->mysql, MYSQL_OPT_SSL_VERIFY_SERVER_CERT,
(void *)&ssl_verify_server_cert);
#endif
#else
--8<---------------cut here---------------end--------------->8---
Variable `ssl_set' does not exist and should be `db->ssl_set'.
Have a nice day,
Tomas Volf
--
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.
_______________________________________________
dovecot mailing list -- [email protected]
To unsubscribe send an email to [email protected]