Page MenuHomeFreeBSD

pf: fix handling unreassembled fragments
ClosedPublic

Authored by kp on Aug 4 2025, 3:40 PM.
Tags
None
Referenced Files
F144404589: D51722.id159820.diff
Sun, Feb 8, 6:37 AM
F144398220: D51722.id159712.diff
Sun, Feb 8, 5:46 AM
Unknown Object (File)
Fri, Jan 30, 5:38 PM
Unknown Object (File)
Nov 25 2025, 1:32 PM
Unknown Object (File)
Nov 22 2025, 4:26 AM
Unknown Object (File)
Nov 6 2025, 1:53 PM
Unknown Object (File)
Nov 3 2025, 11:16 PM
Unknown Object (File)
Oct 30 2025, 9:27 AM

Details

Summary

If we handle a fragment and are configured not to reassemble it the
pd->proto field will show the layer 4 protocol (i.e. UDP,TCP,SCTP,...) but
pd->virtual_proto will show we're a fragment.
In that case we also don't have the layer 4 checksum pointer. Have code that
cares about L4 (e.g. NAT) check virtual_proto so it doesn't try to dereference a
NULL pcksum field.

PR: 288549
Reported by: Danilo Egea Gondolfo <danilo@FreeBSD.org>
Sponsored by: Rubicon Communications, LLC ("Netgate")
If we receive a fragmented packet and we're not reassembling it we don't have

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

kp requested review of this revision.Aug 4 2025, 3:40 PM
This revision was not accepted when it landed; it landed in state Needs Review.Aug 5 2025, 10:28 PM
This revision was automatically updated to reflect the committed changes.