mariadb/mysql-test/main/connect_debug.test
Alexander Barkov 985e3dfc05 MDEV-33182 Server assertion fails when trying to test the connection with DBeaver
Some connectors (JDBC, Node.js) can sent non-default collation IDs
in the handshake packet. The code in thd_init_client_charset() handling
@@character_set_collations did not expect that and crashed on DBUG_ASSERT.

Changing the code to ignore @@character_set_collations in case of non-default
IDs. This fixes the problem in a backward compatible
(with pre-@@character_set_collations server versions) way for such connectors
sending non-default IDs.
2024-01-19 14:48:16 +04:00

60 lines
1.6 KiB
Text

source include/not_embedded.inc;
source include/have_debug.inc;
set @old_dbug=@@global.debug_dbug;
#
# use after free if need plugin change and auth aborted
#
set global debug_dbug='+d,auth_disconnect';
create user 'bad' identified by 'worse';
--error 1
--exec $MYSQL --default-auth=mysql_old_password --user=bad --password=worse
set global debug_dbug=@old_dbug;
drop user bad;
#
# malicious server, invalid plugin name
#
set global debug_dbug='+d,auth_invalid_plugin';
create user 'bad' identified by 'worse';
--replace_regex /loaded: [^\n]*/loaded: invalid plugin name/
--error 1
--exec $MYSQL --default-auth=mysql_old_password --user=bad --password=worse 2>&1
set global debug_dbug=@old_dbug;
drop user bad;
#
# Bug#29630767 - USE OF UNINITIALIZED VALUE IN LIBMYSQL (CLIENT.CC FUNCTION RUN_PLUGIN_AUTH)
#
set global debug_dbug='+d,increase_srv_handshake_scramble_len';
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR $MASTER_MYPORT MASTER_MYPORT
--error 2027
connect con1,localhost,root;
set global debug_dbug=@old_dbug;
set global debug_dbug='+d,poison_srv_handshake_scramble_len';
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR $MASTER_MYPORT MASTER_MYPORT
--error 2027
connect con2,localhost,root;
set global debug_dbug=@old_dbug;
--echo #
--echo # Start of 11.2 tests
--echo #
--echo #
--echo # MDEV-33182 Server assertion fails when trying to test the connection with DBeaver
--echo #
SET global debug_dbug='+d,thd_init_client_charset_utf8mb3_bin';
connect con1,localhost,root;
connection con1;
SHOW VARIABLES LIKE 'collation%';
disconnect con1;
connection default;
SET global debug_dbug=@old_debug;
--echo #
--echo # End of 11.2 tests
--echo #