Page MenuHomeFreeBSD

D49552.id152906.diff
No OneTemporary

D49552.id152906.diff

diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c
--- a/sys/netpfil/pf/pf.c
+++ b/sys/netpfil/pf/pf.c
@@ -5491,6 +5491,7 @@
int asd = 0;
int match = 0;
int state_icmp = 0, icmp_dir;
+ int action = PF_PASS;
u_int16_t virtual_type, virtual_id;
u_int16_t bproto_sum = 0, bip_sum = 0;
u_int8_t icmptype = 0, icmpcode = 0;
@@ -5963,7 +5964,6 @@
if (pd->virtual_proto != PF_VPROTO_FRAGMENT &&
(!state_icmp && (r->keep_state || nr != NULL ||
(pd->flags & PFDESC_TCP_NORM)))) {
- int action;
bool nat64;
action = pf_create_state(r, nr, a, pd, nk, sk,
@@ -6005,6 +6005,9 @@
goto cleanup;
rewrite += ret;
+
+ if (rewrite && sk->af != nk->af)
+ action = PF_AFRT;
}
} else {
while ((ri = SLIST_FIRST(&match_rules))) {
@@ -6032,10 +6035,7 @@
*/
return (PF_DEFER);
- if (rewrite && sk != NULL && nk != NULL && sk->af != nk->af) {
- return (PF_AFRT);
- } else
- return (PF_PASS);
+ return (action);
cleanup:
while ((ri = SLIST_FIRST(&match_rules))) {

File Metadata

Mime Type
text/plain
Expires
Mon, Dec 29, 6:52 AM (3 h, 59 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27354018
Default Alt Text
D49552.id152906.diff (1 KB)

Event Timeline