All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] textsearch oops fix on 64-bit
@ 2006-01-28 22:54 Michael Rash
  2006-01-29 18:50 ` Pablo Neira Ayuso
  0 siblings, 1 reply; 3+ messages in thread
From: Michael Rash @ 2006-01-28 22:54 UTC (permalink / raw)
  To: Pablo Neira Ayuso; +Cc: netfilter-devel

Hi -

When using the string match on kernels 2.6.14 through 2.6.15.1, I get an
oops with Boyer-Moore on my AMD Athlon 64 processor (the Knuth-Morris-Pratt
algorithm works fine).  The oops happens at load time for any Netfilter
rule that attempts to use the string match.  I believe the problem stems
from missing bounds checking on array indices in lib/ts_bm.c within
compute_prefix_tbl().  Here is a patch against 2.6.15.1; I have tested it
on both 32-bit and 64-bit processors and it seems to work.  If the patch
looks ok, I will submit it to the kernel mailing list:


--- linux-2.6.15.1/lib/ts_bm.c.orig     2006-01-27 18:22:44.000000000 -0500
+++ linux-2.6.15.1/lib/ts_bm.c  2006-01-27 18:22:50.000000000 -0500
@@ -107,8 +107,10 @@ static void compute_prefix_tbl(struct ts
        /* Compute the good shift array, used to match reocurrences
         * of a subpattern */
        for (i = 1; i < bm->patlen; i++) {
-               for (j = 0; j < bm->patlen && bm->pattern[bm->patlen - 1 - j]
-                               == bm->pattern[bm->patlen - 1 - i - j]; j++);
+               for (j = 0; j < bm->patlen
+                               && (int)(bm->patlen - 1 - i - j) >= 0
+                               && bm->pattern[bm->patlen - 1 - j]
+                                       == bm->pattern[bm->patlen - 1 - i - j]; j++);
                l[i] = j;
        }


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

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

end of thread, other threads:[~2006-01-29 20:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-01-28 22:54 [PATCH] textsearch oops fix on 64-bit Michael Rash
2006-01-29 18:50 ` Pablo Neira Ayuso
2006-01-29 20:29   ` Michael Rash

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.