MDEV-7050: MySQL#74603 - Assertion `comma_length > 0' failed in mysql_prepare_create_table
Incorrect array lenght for comma buffer.
This commit is contained in:
parent
d85168e40d
commit
0df22a539e
@ -2477,3 +2477,9 @@ t1 CREATE TABLE `t1` (
|
|||||||
`c` char(32) AS (convert(cast(n as char), char)) PERSISTENT
|
`c` char(32) AS (convert(cast(n as char), char)) PERSISTENT
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
set @@session.collation_server=filename;
|
||||||
|
create table t1(a enum('',''));
|
||||||
|
Warnings:
|
||||||
|
Note 1291 Column 'a' has duplicated value '' in ENUM
|
||||||
|
drop table t1;
|
||||||
|
set @@session.collation_server=default;
|
||||||
|
@ -2053,3 +2053,11 @@ select * from t1;
|
|||||||
show create table t1;
|
show create table t1;
|
||||||
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# MDEV-7050: MySQL#74603 - Assertion `comma_length > 0' failed in mysql_prepare_create_table
|
||||||
|
#
|
||||||
|
set @@session.collation_server=filename;
|
||||||
|
create table t1(a enum('',''));
|
||||||
|
drop table t1;
|
||||||
|
set @@session.collation_server=default;
|
||||||
|
@ -2986,9 +2986,10 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info,
|
|||||||
sql_field->interval_list);
|
sql_field->interval_list);
|
||||||
List_iterator<String> int_it(sql_field->interval_list);
|
List_iterator<String> int_it(sql_field->interval_list);
|
||||||
String conv, *tmp;
|
String conv, *tmp;
|
||||||
char comma_buf[4]; /* 4 bytes for utf32 */
|
char comma_buf[5]; /* 5 bytes for 'filename' charset */
|
||||||
|
DBUG_ASSERT(sizeof(comma_buf) >= cs->mbmaxlen);
|
||||||
int comma_length= cs->cset->wc_mb(cs, ',', (uchar*) comma_buf,
|
int comma_length= cs->cset->wc_mb(cs, ',', (uchar*) comma_buf,
|
||||||
(uchar*) comma_buf +
|
(uchar*) comma_buf +
|
||||||
sizeof(comma_buf));
|
sizeof(comma_buf));
|
||||||
DBUG_ASSERT(comma_length > 0);
|
DBUG_ASSERT(comma_length > 0);
|
||||||
for (uint i= 0; (tmp= int_it++); i++)
|
for (uint i= 0; (tmp= int_it++); i++)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user