Bug#43827 Server closes connections and restarts
Problem: Crash happened with a user-defined utf8 collation, on attempt to insert a value longer than the column to store. Reason: The "ctype" member was not initialized (NULL) when allocating a user-defined utf8 collation, so an attempt to call my_ctype(cs, *str) to check if we loose any important data when truncating the value made the server crash. Fix: Initializing tge "ctype" member to a proper value. mysql-test/r/ctype_ldml.result Adding tests mysql-test/t/ctype_ldml.test Adding tests strings/ctype-uca.c Adding initialization of "ctype" member. modified: mysql-test/r/ctype_ldml.result mysql-test/t/ctype_ldml.test strings/ctype-uca.c
This commit is contained in:
parent
5fb8b93e98
commit
d7bfc76dec
@ -40,6 +40,14 @@ abcd abcd
|
|||||||
efgh efgh
|
efgh efgh
|
||||||
ijkl ijkl
|
ijkl ijkl
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug#43827 Server closes connections and restarts
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (c1 VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_test_ci);
|
||||||
|
INSERT INTO t1 SELECT REPEAT('a',11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1265 Data truncated for column 'c1' at row 1
|
||||||
|
DROP TABLE t1;
|
||||||
show collation like 'ucs2_vn_ci';
|
show collation like 'ucs2_vn_ci';
|
||||||
Collation Charset Id Default Compiled Sortlen
|
Collation Charset Id Default Compiled Sortlen
|
||||||
ucs2_vn_ci ucs2 242 8
|
ucs2_vn_ci ucs2 242 8
|
||||||
|
@ -37,6 +37,15 @@ UPDATE t1 SET col2=col1;
|
|||||||
SELECT * FROM t1 WHERE col1=col2 ORDER BY col1;
|
SELECT * FROM t1 WHERE col1=col2 ORDER BY col1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug#43827 Server closes connections and restarts
|
||||||
|
--echo #
|
||||||
|
# Crash happened with a user-defined utf8 collation,
|
||||||
|
# on attempt to insert a string longer than the column can store.
|
||||||
|
CREATE TABLE t1 (c1 VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_test_ci);
|
||||||
|
INSERT INTO t1 SELECT REPEAT('a',11);
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Vietnamese experimental collation
|
# Vietnamese experimental collation
|
||||||
#
|
#
|
||||||
|
@ -7992,6 +7992,7 @@ static my_bool create_tailoring(CHARSET_INFO *cs, void *(*alloc)(size_t))
|
|||||||
static my_bool my_coll_init_uca(CHARSET_INFO *cs, void *(*alloc)(size_t))
|
static my_bool my_coll_init_uca(CHARSET_INFO *cs, void *(*alloc)(size_t))
|
||||||
{
|
{
|
||||||
cs->pad_char= ' ';
|
cs->pad_char= ' ';
|
||||||
|
cs->ctype= my_charset_utf8_unicode_ci.ctype;
|
||||||
return create_tailoring(cs, alloc);
|
return create_tailoring(cs, alloc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user