diff options
author | Kristof Provost <kp@FreeBSD.org> | 2023-11-29 18:06:31 +0000 |
---|---|---|
committer | Mark Johnston <markj@FreeBSD.org> | 2023-12-05 18:25:22 +0000 |
commit | ee1d1e38fae65d045b113a7053651bbd7b780e1d (patch) | |
tree | d6c1acb472d192536c08b35a9430bc9b706c13eb | |
parent | 4d4b3a34267787a03f03125fc01532ff2f8539d1 (diff) | |
download | src-ee1d1e38fae65d045b113a7053651bbd7b780e1d.tar.gz src-ee1d1e38fae65d045b113a7053651bbd7b780e1d.zip |
pf: remove incorrect fragmentation check
We do not need to check PFDESC_IP_REAS while tracking TCP state.
Moreover, this check incorrectly considers no-data packets (e.g. RST) to
be in-window when this flag is not set.
Sponsored by: Rubicon Communications, LLC ("Netgate")
Approved by: so
Security: FreeBSD-SA-23:17.pf
(cherry picked from commit 6284d5f76d6bd2d97fe287c5adabf59c79688eda)
-rw-r--r-- | sys/netpfil/pf/pf.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index c09f80d2f82b..e03fcbbe37a9 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -4780,8 +4780,7 @@ pf_tcp_track_full(struct pf_kstate **state, struct pfi_kkif *kif, (ackskew <= (MAXACKWINDOW << sws)) && /* Acking not more than one window forward */ ((th->th_flags & TH_RST) == 0 || orig_seq == src->seqlo || - (orig_seq == src->seqlo + 1) || (orig_seq + 1 == src->seqlo) || - (pd->flags & PFDESC_IP_REAS) == 0)) { + (orig_seq == src->seqlo + 1) || (orig_seq + 1 == src->seqlo))) { /* Require an exact/+1 sequence match on resets when possible */ if (dst->scrub || src->scrub) { |