From db4ef35a4f833718da76f4ca239636086bde1903 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 1 Nov 2007 16:27:01 +0400 Subject: 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). --- myisam/ft_parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'myisam') 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; -- cgit v1.2.1