All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Boyer Moore textsearch bug fix
@ 2006-08-17  3:16 Michael Rash
  2006-08-17 13:39 ` Patrick McHardy
  0 siblings, 1 reply; 6+ messages in thread
From: Michael Rash @ 2006-08-17  3:16 UTC (permalink / raw)
  To: Pablo Neira Ayuso; +Cc: netfilter-devel

Hi -

The patch below fixes Bugzilla #501:

The compute_prefix_tbl() function in lib/ts_bm.c is called before
bm->pattern is initialized, and this results in the following issue.
If the rule below is put within the OUTPUT chain (note the slightly
repetitive pattern "aaabbbccc" which I think is necessary to expose
the fact that the good_shift array is not getting populated
correctly):

iptables -I OUTPUT -p tcp --dport 80 -m string --string "aaabbbccc" \
--algo bm -j LOG --log-prefix "bm "

...then the issuing the following commands fail to match the rule (no
log message is generated):

echo "1aaabbbccc" |nc <someserver> 80
echo "12aaabbbccc" |nc <someserver> 80
echo "1234aaabbbccc" |nc <someserver> 80

...but these do match:

echo "aaabbbccc" |nc <someserver> 80
echo "123aaabbbccc" |nc <someserver> 80

--
Michael Rash
http://www.cipherdyne.org/
Key fingerprint = 53EA 13EA 472E 3771 894F  AC69 95D8 5D6B A742 839F


--- linux-2.6.17.8/lib/ts_bm.c.orig	2006-08-16 21:17:38.000000000 -0400
+++ linux-2.6.17.8/lib/ts_bm.c	2006-08-16 21:17:56.000000000 -0400
@@ -151,8 +151,8 @@
 	bm = ts_config_priv(conf);
 	bm->patlen = len;
 	bm->pattern = (u8 *) bm->good_shift + prefix_tbl_len;
-	compute_prefix_tbl(bm, pattern, len);
 	memcpy(bm->pattern, pattern, len);
+	compute_prefix_tbl(bm, pattern, len);
 
 	return conf;
 }

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2006-08-17 15:43 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-17  3:16 [PATCH] Boyer Moore textsearch bug fix Michael Rash
2006-08-17 13:39 ` Patrick McHardy
2006-08-17 14:25   ` Pablo Neira Ayuso
2006-08-17 14:27     ` Patrick McHardy
2006-08-17 14:46   ` Michael Rash
2006-08-17 15:43     ` Patrick McHardy

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.