On Mon, Jun 19, 2023 at 08:06:57PM +0100, Jeremy Sowden wrote: > The `shift` variable which indicates the offset in the string at which > to start matching the pattern is initialized to `bm->patlen - 1`, but it > is not reset when a new block is retrieved. This means the implemen- > tation may start looking at later and later positions in each successive > block and miss occurrences of the pattern at the beginning. E.g., > consider a HTTP packet held in a non-linear skb, where the HTTP request > line occurs in the second block: > > [... 52 bytes of packet headers ...] > GET /bmtest HTTP/1.1\r\nHost: www.example.com\r\n\r\n > > and the pattern is "GET /bmtest". > > Once the first block comprising the packet headers has been examined, > `shift` will be pointing to somewhere near the end of the block, and so > when the second block is examined the request line at the beginning will > be missed. > > Reinitialize the variable for each new block. Applied to nf.git, thanks