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:
@@ -3292,6 +3292,9 @@ static int com_charset(String *, char *line)
|
|||||||
new_cs= get_charset_by_csname(param, MY_CS_PRIMARY, MYF(MY_WME));
|
new_cs= get_charset_by_csname(param, MY_CS_PRIMARY, MYF(MY_WME));
|
||||||
if (new_cs)
|
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;
|
charset_info= new_cs;
|
||||||
mysql_set_character_set(&mysql, charset_info->csname);
|
mysql_set_character_set(&mysql, charset_info->csname);
|
||||||
default_charset= (char *)charset_info->csname;
|
default_charset= (char *)charset_info->csname;
|
||||||
|
@@ -11,3 +11,11 @@ X
|
|||||||
3
|
3
|
||||||
ERROR 1300 (HY000): Invalid utf8 character string: 'test\xF0\x9F\x98\x81 '
|
ERROR 1300 (HY000): Invalid utf8 character string: 'test\xF0\x9F\x98\x81 '
|
||||||
ERROR 1300 (HY000): Invalid binary 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
|
||||||
|
@@ -29,3 +29,16 @@ exec $MYSQL test -e "$query";
|
|||||||
--exec $MYSQL --default-character-set=utf8 -e "select 1" "test😁 " 2>&1
|
--exec $MYSQL --default-character-set=utf8 -e "select 1" "test😁 " 2>&1
|
||||||
--error 1
|
--error 1
|
||||||
--exec $MYSQL --default-character-set=binary -e "select 1" "test😁 " 2>&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
|
||||||
|
Reference in New Issue
Block a user