From 000ed6281f196f0d5bd8b86eec999b0ef8ac5092 Mon Sep 17 00:00:00 2001 From: Georg Richter Date: Tue, 5 Nov 2024 12:51:51 +0100 Subject: [PATCH] Fix for CONC-740: Moved the initialization of server verification callback from mysql_init to mysql_real_connect to avoid memory leak in case of a reconnect. --- libmariadb/mariadb_lib.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libmariadb/mariadb_lib.c b/libmariadb/mariadb_lib.c index 92b79aaf..8c1ef0b4 100644 --- a/libmariadb/mariadb_lib.c +++ b/libmariadb/mariadb_lib.c @@ -1317,7 +1317,6 @@ mysql_init(MYSQL *mysql) mysql->extension->auto_local_infile= ENABLED_LOCAL_INFILE == LOCAL_INFILE_MODE_AUTO ? WAIT_FOR_QUERY : ALWAYS_ACCEPT; mysql->options.reconnect= 0; - mysql_optionsv(mysql, MARIADB_OPT_TLS_VERIFICATION_CALLBACK, ma_pvio_tls_verify_server_cert); return mysql; error: if (mysql->free_me) @@ -1447,6 +1446,9 @@ mysql_real_connect(MYSQL *mysql, const char *host, const char *user, char *connection_handler= (mysql->options.extension) ? mysql->options.extension->connection_handler : 0; + if (!mysql->options.extension || !mysql->options.extension->tls_verification_callback) + mysql_optionsv(mysql, MARIADB_OPT_TLS_VERIFICATION_CALLBACK, ma_pvio_tls_verify_server_cert); + if ((client_flag & CLIENT_ALLOWED_FLAGS) != client_flag) { my_set_error(mysql, CR_INVALID_CLIENT_FLAG, SQLSTATE_UNKNOWN,