Fix stateful filtering of loopback IPv6 traffic to an address not configured

on lo0.  While here fix a comment.

PR:		kern/102647
Reported by:	Frank Steinborn
Submitted by:	suz (earlier version)
MFC after:	3 days
This commit is contained in:
mlaier 2006-09-06 17:19:45 +00:00
parent f044a1949b
commit 9e3a82aacc

View File

@ -3438,11 +3438,17 @@ pf_check6_in(void *arg, struct mbuf **m, struct ifnet *ifp, int dir,
struct inpcb *inp)
{
/*
* IPv6 does not affected ip_len/ip_off byte order changes.
* IPv6 is not affected by ip_len/ip_off byte order changes.
*/
int chk;
chk = pf_test6(PF_IN, ifp, m, NULL, inp);
/*
* In case of loopback traffic IPv6 uses the real interface in
* order to support scoped addresses. In order to support stateful
* filtering we have change this to lo0 as it is the case in IPv4.
*/
chk = pf_test6(PF_IN, (*m)->m_flags & M_LOOP ? &loif[0] : ifp, m,
NULL, inp);
if (chk && *m) {
m_freem(*m);
*m = NULL;