Reloop OpenBSD rev. 1.563:
In pf_test_fragment(), ignore protocol-specific criteria for packets of different protocols. Reported by: des Obtained from: OpenBSD MFC after: 3 days
This commit is contained in:
parent
4877aaebc1
commit
fb63048c8a
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=173815
@ -4560,9 +4560,17 @@ pf_test_fragment(struct pf_rule **rm, int direction, struct pfi_kif *kif,
|
||||
r = r->skip[PF_SKIP_DST_ADDR].ptr;
|
||||
else if (r->tos && !(r->tos == pd->tos))
|
||||
r = TAILQ_NEXT(r, entries);
|
||||
else if (r->src.port_op || r->dst.port_op ||
|
||||
r->flagset || r->type || r->code ||
|
||||
r->os_fingerprint != PF_OSFP_ANY)
|
||||
else if (r->os_fingerprint != PF_OSFP_ANY)
|
||||
r = TAILQ_NEXT(r, entries);
|
||||
else if (pd->proto == IPPROTO_UDP &&
|
||||
(r->src.port_op || r->dst.port_op))
|
||||
r = TAILQ_NEXT(r, entries);
|
||||
else if (pd->proto == IPPROTO_TCP &&
|
||||
(r->src.port_op || r->dst.port_op || r->flagset))
|
||||
r = TAILQ_NEXT(r, entries);
|
||||
else if ((pd->proto == IPPROTO_ICMP ||
|
||||
pd->proto == IPPROTO_ICMPV6) &&
|
||||
(r->type || r->code))
|
||||
r = TAILQ_NEXT(r, entries);
|
||||
else if (r->prob && r->prob <= arc4random())
|
||||
r = TAILQ_NEXT(r, entries);
|
||||
|
Loading…
Reference in New Issue
Block a user