#At file:///home/bar/mysql-bzr/mysql-5.1.b43827/ based on revid:satya.bn@stripped
2855 Alexander Barkov 2009-04-08
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
=== modified file 'mysql-test/r/ctype_ldml.result'
--- a/mysql-test/r/ctype_ldml.result 2009-02-02 13:25:42 +0000
+++ b/mysql-test/r/ctype_ldml.result 2009-04-08 06:52:14 +0000
@@ -40,6 +40,11 @@ abcd abcd
efgh efgh
ijkl ijkl
DROP TABLE t1;
+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';
Collation Charset Id Default Compiled Sortlen
ucs2_vn_ci ucs2 242 8
=== modified file 'mysql-test/t/ctype_ldml.test'
--- a/mysql-test/t/ctype_ldml.test 2009-02-02 13:25:42 +0000
+++ b/mysql-test/t/ctype_ldml.test 2009-04-08 06:52:14 +0000
@@ -38,6 +38,14 @@ SELECT * FROM t1 WHERE col1=col2 ORDER B
DROP TABLE t1;
#
+# Bug#43827 Server closes connections and restarts
+# 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
#
=== modified file 'strings/ctype-uca.c'
--- a/strings/ctype-uca.c 2007-07-03 09:06:57 +0000
+++ b/strings/ctype-uca.c 2009-04-08 06:52:14 +0000
@@ -7992,6 +7992,7 @@ static my_bool create_tailoring(CHARSET_
static my_bool my_coll_init_uca(CHARSET_INFO *cs, void *(*alloc)(size_t))
{
cs->pad_char= ' ';
+ cs->ctype= my_charset_utf8_unicode_ci.ctype;
return create_tailoring(cs, alloc);
}
Attachment: [text/bzr-bundle] bzr/bar@mysql.com-20090408065214-25my19frkzj5rlb0.bundle
| Thread |
|---|
| • bzr commit into mysql-5.1-bugteam branch (bar:2855) Bug#43827 | Alexander Barkov | 8 Apr |