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: Joonwoo Park <joonwpark81@gmail.com> Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
84ebe1cdae
commit
aebb6a849c
|
@ -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);
|
||||
unsigned int i, text_len, consumed = state->offset;
|
||||
const u8 *text;
|
||||
int shift = bm->patlen, bs;
|
||||
int shift = bm->patlen - 1, bs;
|
||||
|
||||
for (;;) {
|
||||
text_len = conf->get_next_block(consumed, &text, conf, state);
|
||||
|
|
Loading…
Reference in New Issue