Page MenuHomeFreeBSD

D12457.diff
No OneTemporary

D12457.diff

Index: head/sys/net/if_stf.c
===================================================================
--- head/sys/net/if_stf.c
+++ head/sys/net/if_stf.c
@@ -367,6 +367,7 @@
static int
stf_getsrcifa6(struct ifnet *ifp, struct in6_addr *addr, struct in6_addr *mask)
{
+ struct rm_priotracker in_ifa_tracker;
struct ifaddr *ia;
struct in_ifaddr *ia4;
struct in6_ifaddr *ia6;
@@ -382,9 +383,11 @@
continue;
bcopy(GET_V4(&sin6->sin6_addr), &in, sizeof(in));
+ IN_IFADDR_RLOCK(&in_ifa_tracker);
LIST_FOREACH(ia4, INADDR_HASH(in.s_addr), ia_hash)
if (ia4->ia_addr.sin_addr.s_addr == in.s_addr)
break;
+ IN_IFADDR_RUNLOCK(&in_ifa_tracker);
if (ia4 == NULL)
continue;

File Metadata

Mime Type
text/plain
Expires
Tue, Nov 19, 8:24 PM (21 h, 58 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14723012
Default Alt Text
D12457.diff (696 B)

Event Timeline