1
0
mirror of https://github.com/mariadb-corporation/mariadb-connector-c.git synced 2025-08-08 14:02:17 +03:00

Fix for CONC-490:

If CLIENT_CONNECT_WITH_DB flag was specified without a database name,
we need to unset this flag to prevent breaking connection handshake.
This commit is contained in:
Georg Richter
2021-04-29 10:59:25 +02:00
parent 701ea9494e
commit 9244281d6b
2 changed files with 19 additions and 0 deletions

View File

@@ -231,6 +231,10 @@ static int send_client_reply_packet(MCPVIO_EXT *mpvio,
#endif /* HAVE_TLS && !EMBEDDED_LIBRARY*/ #endif /* HAVE_TLS && !EMBEDDED_LIBRARY*/
if (mpvio->db) if (mpvio->db)
mysql->client_flag|= CLIENT_CONNECT_WITH_DB; mysql->client_flag|= CLIENT_CONNECT_WITH_DB;
else
/* See CONC-490: If no database was specified, we need
to unset CLIENT_CONNECT_WITH_DB flag */
mysql->client_flag&= ~CLIENT_CONNECT_WITH_DB;
/* if server doesn't support SSL and verification of server certificate /* if server doesn't support SSL and verification of server certificate
was set to mandatory, we need to return an error */ was set to mandatory, we need to return an error */

View File

@@ -1892,7 +1892,22 @@ static int test_gtid(MYSQL *mysql)
return OK; return OK;
} }
static int test_conc490(MYSQL *my __attribute__((unused)))
{
MYSQL *mysql= mysql_init(NULL);
if (!my_test_connect(mysql, hostname, username,
password, NULL, port, socketname, CLIENT_CONNECT_WITH_DB))
{
diag("error: %s\n", mysql_error(mysql));
return FAIL;
}
mysql_close(mysql);
return OK;
}
struct my_tests_st my_tests[] = { struct my_tests_st my_tests[] = {
{"test_conc490", test_conc490, TEST_CONNECTION_NONE, 0, NULL, NULL},
{"test_gtid", test_gtid, TEST_CONNECTION_DEFAULT, 0, NULL, NULL}, {"test_gtid", test_gtid, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
{"test_conc496", test_conc496, TEST_CONNECTION_DEFAULT, 0, NULL, NULL}, {"test_conc496", test_conc496, TEST_CONNECTION_DEFAULT, 0, NULL, NULL},
{"test_default_auth", test_default_auth, TEST_CONNECTION_NONE, 0, NULL, NULL}, {"test_default_auth", test_default_auth, TEST_CONNECTION_NONE, 0, NULL, NULL},