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

Bugs: #7111: server crashes when regexp is used

This commit is contained in:
bar@mysql.com
2004-12-09 15:56:19 +04:00
parent 611abb882b
commit c735aaebfc
3 changed files with 38 additions and 2 deletions

View File

@ -860,11 +860,28 @@ othercase(charset,ch)
CHARSET_INFO *charset;
int ch;
{
/*
In MySQL some multi-byte character sets
have 'ctype' array but don't have 'to_lower'
and 'to_upper' arrays. In this case we handle
only basic latin letters a..z and A..Z.
If 'to_lower' and 'to_upper' arrays are empty in a character set,
then my_isalpha(cs, ch) should never return TRUE for characters
other than basic latin letters. Otherwise it should be
considered as a mistake in character set definition.
*/
assert(my_isalpha(charset,ch));
if (my_isupper(charset,ch))
return(my_tolower(charset,ch));
{
return(charset->to_lower ? my_tolower(charset,ch) :
ch - 'A' + 'a');
}
else if (my_islower(charset,ch))
return(my_toupper(charset,ch));
{
return(charset->to_upper ? my_toupper(charset,ch) :
ch - 'a' + 'A');
}
else /* peculiar, but could happen */
return(ch);
}