1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Fix for bug #31069: crash in 'sounds like'

and for bug #31070: crash during conversion of charsets

Problem: passing a 0 byte length string to some my_mb_wc_XXX() 
functions leads to server crash due to improper argument check.

Fix: properly check arguments passed to my_mb_wc_XXX() functions.
This commit is contained in:
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
2007-10-04 10:20:00 +05:00
parent e78513165c
commit bc9b4834e1
11 changed files with 73 additions and 11 deletions

View File

@ -51,6 +51,15 @@ SELECT c1 as want1result from t1 where c1 like 'locatio%';
SELECT c1 as want1result from t1 where c1 like 'location%';
DROP TABLE t1;
#
# Bug #31070: crash during conversion of charsets
#
create table t1 (a set('a') not null);
insert into t1 values (),();
select cast(a as char(1)) from t1;
select a sounds like a from t1;
drop table t1;
DROP DATABASE d1;
# Restore settings
USE test;

View File

@ -52,6 +52,17 @@ SELECT c1 as want1result from t1 where c1 like 'location%';
want1result
location
DROP TABLE t1;
create table t1 (a set('a') not null);
insert into t1 values (),();
select cast(a as char(1)) from t1;
cast(a as char(1))
select a sounds like a from t1;
a sounds like a
1
1
drop table t1;
DROP DATABASE d1;
USE test;
SET character_set_server= @safe_character_set_server;

View File

@ -52,6 +52,17 @@ SELECT c1 as want1result from t1 where c1 like 'location%';
want1result
location
DROP TABLE t1;
create table t1 (a set('a') not null);
insert into t1 values (),();
select cast(a as char(1)) from t1;
cast(a as char(1))
select a sounds like a from t1;
a sounds like a
1
1
drop table t1;
DROP DATABASE d1;
USE test;
SET character_set_server= @safe_character_set_server;

View File

@ -52,6 +52,17 @@ SELECT c1 as want1result from t1 where c1 like 'location%';
want1result
location
DROP TABLE t1;
create table t1 (a set('a') not null);
insert into t1 values (),();
select cast(a as char(1)) from t1;
cast(a as char(1))
select a sounds like a from t1;
a sounds like a
1
1
drop table t1;
DROP DATABASE d1;
USE test;
SET character_set_server= @safe_character_set_server;

View File

@ -52,6 +52,17 @@ SELECT c1 as want1result from t1 where c1 like 'location%';
want1result
location
DROP TABLE t1;
create table t1 (a set('a') not null);
insert into t1 values (),();
select cast(a as char(1)) from t1;
cast(a as char(1))
select a sounds like a from t1;
a sounds like a
1
1
drop table t1;
DROP DATABASE d1;
USE test;
SET character_set_server= @safe_character_set_server;

View File

@ -2371,6 +2371,17 @@ SELECT c1 as want1result from t1 where c1 like 'location%';
want1result
location
DROP TABLE t1;
create table t1 (a set('a') not null);
insert into t1 values (),();
select cast(a as char(1)) from t1;
cast(a as char(1))
select a sounds like a from t1;
a sounds like a
1
1
drop table t1;
DROP DATABASE d1;
USE test;
SET character_set_server= @safe_character_set_server;