HomeFreeBSD

pf: fix fragment hole count

Description

pf: fix fragment hole count

Fragment reassembly finishes when no holes are left in the fragment
queue. In certain overlap conditions, the hole counter was wrong
and pf(4) created an incomplete IP packet. Before adjusting the
length, remove the overlapping fragment from the queue and insert
it again afterwards. pf_frent_remove() and pf_frent_insert() adjust
the hole counter automatically.

bug reported and fix tested by Lucas Aubard with Johan Mazel, Gilles
Guette and Pierre Chifflier; OK claudio@

MFC after: 1 week
Obtained from: OpenBSD, bluhm <bluhm@openbsd.org>, 9915416fe8
Sponsored by: Rubicon Communications, LLC ("Netgate")

Details

Provenance
kpAuthored on Tue, Feb 4, 4:19 PM
Parents
rG706a03f61bbb: ipfw: make 'ipfw show' output compatible with 'ipfw add' command
Branches
Unknown
Tags
Unknown