diff options
author | unknown <svoj@mysql.com/june.mysql.com> | 2007-11-01 16:27:01 +0400 |
---|---|---|
committer | unknown <svoj@mysql.com/june.mysql.com> | 2007-11-01 16:27:01 +0400 |
commit | db4ef35a4f833718da76f4ca239636086bde1903 (patch) | |
tree | 4dcff8c8ba38ddbd3f140ba677b26996246919af /myisam | |
parent | 0724eb88e2540cdbecb3c58a02dc79dba2358359 (diff) | |
download | mariadb-git-db4ef35a4f833718da76f4ca239636086bde1903.tar.gz |
BUG#31950 - repair table hangs while processing multicolumn utf8
fulltext index
Having a table with broken multibyte characters may cause fulltext
parser dead-loop.
Since normally it is not possible to insert broken multibyte sequence
into a table, this problem may arise only if table is damaged.
Affected statements are:
- CHECK/REPAIR against damaged table with fulltext index;
- boolean mode phrase search against damaged table with or
without fulltext inex;
- boolean mode searches without index;
- nlq searches.
No test case for this fix. Affects 5.0 only.
myisam/ft_parser.c:
When skipping leading spaces, skip broken characters as well (broken
characters a identified by mbl == 0).
Diffstat (limited to 'myisam')
-rw-r--r-- | myisam/ft_parser.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/myisam/ft_parser.c b/myisam/ft_parser.c index 6d68542e4e2..1d3a19dd8c6 100644 --- a/myisam/ft_parser.c +++ b/myisam/ft_parser.c @@ -188,7 +188,7 @@ byte ft_simple_get_word(CHARSET_INFO *cs, byte **start, const byte *end, do { - for (;; doc+= mbl) + for (;; doc+= (mbl ? mbl : 1)) { if (doc >= end) DBUG_RETURN(0); if (true_word_char(cs, *doc)) break; |