Commit aebb6a84 authored by Joonwoo Park's avatar Joonwoo Park Committed by David S. Miller

textsearch: fix Boyer-Moore text search bug

The current logic has a bug which cannot find matching pattern, if the
pattern is matched from the first character of target string.
for example:
	pattern=abc, string=abcdefg
	pattern=a,   string=abcdefg
Searching algorithm should return 0 for those things.
Signed-off-by: default avatarJoonwoo Park <joonwpark81@gmail.com>
Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 84ebe1cd
...@@ -63,7 +63,7 @@ static unsigned int bm_find(struct ts_config *conf, struct ts_state *state) ...@@ -63,7 +63,7 @@ static unsigned int bm_find(struct ts_config *conf, struct ts_state *state)
struct ts_bm *bm = ts_config_priv(conf); struct ts_bm *bm = ts_config_priv(conf);
unsigned int i, text_len, consumed = state->offset; unsigned int i, text_len, consumed = state->offset;
const u8 *text; const u8 *text;
int shift = bm->patlen, bs; int shift = bm->patlen - 1, bs;
for (;;) { for (;;) {
text_len = conf->get_next_block(consumed, &text, conf, state); text_len = conf->get_next_block(consumed, &text, conf, state);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment