Page MenuHomeFreeBSD

D49552.id152791.diff
No OneTemporary

D49552.id152791.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
@@ -5492,6 +5492,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;
@@ -5964,7 +5965,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,
@@ -6006,6 +6006,9 @@
goto cleanup;
rewrite += ret;
+
+ if (rewrite && sk->af != nk->af)
+ action = PF_AFRT;
}
} else {
while ((ri = SLIST_FIRST(&match_rules))) {
@@ -6033,10 +6036,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, Feb 9, 7:35 AM (1 h, 5 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28554016
Default Alt Text
D49552.id152791.diff (1 KB)

Event Timeline