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]