kern/146832: [pf] (self) not always matching all local IPv6 addresses

Kenneth Vestergaard kvs at binarysolutions.dk
Sat Sep 24 15:00:18 UTC 2011


The following reply was made to PR kern/146832; it has been noted by GNATS.

From: Kenneth Vestergaard <kvs at binarysolutions.dk>
To: Kenneth Vestergaard <kvs at binarysolutions.dk>
Cc: bug-followup at FreeBSD.org,
 xi at borderworlds.dk
Subject: Re: kern/146832: [pf] (self) not always matching all local IPv6 addresses
Date: Sat, 24 Sep 2011 16:56:55 +0200

 As far as I can tell, the patch below fixes.
 
 I'm not sure about the semantics of "we don't need to install a host =
 route", but the
 eventhandler-part was added to the bottom of the case-scope, and =
 seemingly just missed
 dealing with the non-error early exit when prefixlen of a new address is =
 128.
 
 Index: sys/netinet6/in6.c
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
 --- sys/netinet6/in6.c	(revision 225328)
 +++ sys/netinet6/in6.c	(working copy)
 @@ -589,6 +589,8 @@
  		pr0.ndpr_plen =3D =
 in6_mask2len(&ifra->ifra_prefixmask.sin6_addr,
  		    NULL);
  		if (pr0.ndpr_plen =3D=3D 128) {
 +			if (error =3D=3D 0 && ia)
 +			    EVENTHANDLER_INVOKE(ifaddr_event, ifp);
  			break;	/* we don't need to install a host =
 route. */
  		}
  		pr0.ndpr_prefix =3D ifra->ifra_addr;
 
 --=20
 Kenneth Vestergaard=
 


More information about the freebsd-pf mailing list