1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

MDEV-34090 Client allows to set character set to utf32 and crashes on the next command

Disallowing character sets with mbminlen>1 in the client.
This commit is contained in:
Alexander Barkov
2024-11-07 12:16:33 +04:00
parent 425d2521ec
commit 225c17d35c
3 changed files with 24 additions and 0 deletions

View File

@@ -3292,6 +3292,9 @@ static int com_charset(String *, char *line)
new_cs= get_charset_by_csname(param, MY_CS_PRIMARY, MYF(MY_WME));
if (new_cs)
{
if (new_cs->mbminlen > 1)
return put_info("Character sets with mbminlen>1 are not supported",
INFO_ERROR, 0);
charset_info= new_cs;
mysql_set_character_set(&mysql, charset_info->csname);
default_charset= (char *)charset_info->csname;

View File

@@ -11,3 +11,11 @@ X
3
ERROR 1300 (HY000): Invalid utf8 character string: 'test\xF0\x9F\x98\x81 '
ERROR 1300 (HY000): Invalid binary character string: 'test\xF0\x9F\x98\x81 '
# Start of 10.5 tests
#
# MDEV-34090 Client allows to set character set to utf32 and crashes on the next command
#
SELECT "Success" AS c1;
c1
Success
# End of 10.5 tests

View File

@@ -29,3 +29,16 @@ exec $MYSQL test -e "$query";
--exec $MYSQL --default-character-set=utf8 -e "select 1" "test😁 " 2>&1
--error 1
--exec $MYSQL --default-character-set=binary -e "select 1" "test😁 " 2>&1
--echo # Start of 10.5 tests
--echo #
--echo # MDEV-34090 Client allows to set character set to utf32 and crashes on the next command
--echo #
--error 1
--exec $MYSQL test -e '\C utf32 ; SELECT 1'
SELECT "Success" AS c1;
--echo # End of 10.5 tests