View | Details | Raw Unified | Return to bug 220078 | Differences between
and this patch

Collapse All | Expand All

(-)sys/net/if_stf.c (+3 lines)
Lines 360-365 stf_encapcheck(const struct mbuf *m, int Link Here
360
static int
360
static int
361
stf_getsrcifa6(struct ifnet *ifp, struct in6_addr *addr, struct in6_addr *mask)
361
stf_getsrcifa6(struct ifnet *ifp, struct in6_addr *addr, struct in6_addr *mask)
362
{
362
{
363
	struct rm_priotracker in_ifa_tracker;
363
	struct ifaddr *ia;
364
	struct ifaddr *ia;
364
	struct in_ifaddr *ia4;
365
	struct in_ifaddr *ia4;
365
	struct in6_ifaddr *ia6;
366
	struct in6_ifaddr *ia6;
Lines 375-383 stf_getsrcifa6(struct ifnet *ifp, struct Link Here
375
			continue;
376
			continue;
376
377
377
		bcopy(GET_V4(&sin6->sin6_addr), &in, sizeof(in));
378
		bcopy(GET_V4(&sin6->sin6_addr), &in, sizeof(in));
379
		IN_IFADDR_RLOCK(&in_ifa_tracker);
378
		LIST_FOREACH(ia4, INADDR_HASH(in.s_addr), ia_hash)
380
		LIST_FOREACH(ia4, INADDR_HASH(in.s_addr), ia_hash)
379
			if (ia4->ia_addr.sin_addr.s_addr == in.s_addr)
381
			if (ia4->ia_addr.sin_addr.s_addr == in.s_addr)
380
				break;
382
				break;
383
		IN_IFADDR_RUNLOCK(&in_ifa_tracker);
381
		if (ia4 == NULL)
384
		if (ia4 == NULL)
382
			continue;
385
			continue;
383
386

Return to bug 220078