1
|
diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c
|
2
|
index f383822..5d62b39 100644
|
3
|
--- a/sys/netpfil/pf/pf.c
|
4
|
+++ b/sys/netpfil/pf/pf.c
|
5
|
@@ -3132,16 +3132,18 @@ pf_set_rt_ifp(struct pf_state *s, struct pf_addr *saddr)
|
6
|
#ifdef INET
|
7
|
case AF_INET:
|
8
|
pf_map_addr(AF_INET, r, saddr, &s->rt_addr, NULL, &sn);
|
9
|
- s->rt_kif = r->rpool.cur->kif;
|
10
|
break;
|
11
|
#endif /* INET */
|
12
|
#ifdef INET6
|
13
|
case AF_INET6:
|
14
|
pf_map_addr(AF_INET6, r, saddr, &s->rt_addr, NULL, &sn);
|
15
|
- s->rt_kif = r->rpool.cur->kif;
|
16
|
break;
|
17
|
#endif /* INET6 */
|
18
|
}
|
19
|
+ if (sn != NULL && sn->kif != NULL)
|
20
|
+ s->rt_kif = sn->kif;
|
21
|
+ else
|
22
|
+ s->rt_kif = r->rpool.cur->kif;
|
23
|
}
|
24
|
|
25
|
static u_int32_t
|