From a0cbee900b58bbf1e946b0427cfad9e0b611a876 Mon Sep 17 00:00:00 2001 From: Georg Richter Date: Fri, 11 Oct 2019 16:39:01 +0200 Subject: [PATCH] Schannel fix for 9ba8e32f6d0fe449114d8eb369cf29303257b460 When we try to reconnect we need to set CLIENT_REMEMBER_OPTIONS otherwise new connection will not be secure. --- libmariadb/mariadb_lib.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libmariadb/mariadb_lib.c b/libmariadb/mariadb_lib.c index 4504d6b1..bf32ecf6 100644 --- a/libmariadb/mariadb_lib.c +++ b/libmariadb/mariadb_lib.c @@ -1216,7 +1216,7 @@ mysql_real_connect(MYSQL *mysql, const char *host, const char *user, while (ssl_retry) { if ((my= mysql->methods->db_connect(mysql, host, user, passwd, - db, port, unix_socket, client_flag))) + db, port, unix_socket, client_flag | CLIENT_REMEMBER_OPTIONS))) return my; switch (mysql->net.extension->extended_errno) { @@ -1224,11 +1224,14 @@ mysql_real_connect(MYSQL *mysql, const char *host, const char *user, case SEC_E_BUFFER_TOO_SMALL: case SEC_E_MESSAGE_ALTERED: ssl_retry--; - break; + break; default: - return NULL; + ssl_retry= 0; + break; } } + if (!ny && !(client_flag & CLIENT_REMEMBER_OPTIONS)) + mysql_close_options(mysql); return my; } #endif