summaryrefslogtreecommitdiff
path: root/myisam
diff options
context:
space:
mode:
authorunknown <svoj@mysql.com/june.mysql.com>2007-11-01 16:27:01 +0400
committerunknown <svoj@mysql.com/june.mysql.com>2007-11-01 16:27:01 +0400
commitdb4ef35a4f833718da76f4ca239636086bde1903 (patch)
tree4dcff8c8ba38ddbd3f140ba677b26996246919af /myisam
parent0724eb88e2540cdbecb3c58a02dc79dba2358359 (diff)
downloadmariadb-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.c2
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;