FreeBSD Bugzilla – Attachment 183569 Details for
Bug 220078
[patch] [panic] repeatable kernel panic due to unlocked INADDR_TO_IFP usage
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
lock access to INADDR_HASH in the stf(4)
if_stf.c.diff (text/plain), 748 bytes, created by
Eugene Grosbein
on 2017-06-17 12:19:55 UTC
(
hide
)
Description:
lock access to INADDR_HASH in the stf(4)
Filename:
MIME Type:
Creator:
Eugene Grosbein
Created:
2017-06-17 12:19:55 UTC
Size:
748 bytes
patch
obsolete
>--- sys/net/if_stf.c.orig 2017-02-15 13:04:46.104907000 +0700 >+++ sys/net/if_stf.c 2017-06-17 18:17:19.395830000 +0700 >@@ -360,6 +360,7 @@ stf_encapcheck(const struct mbuf *m, int > 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; >@@ -375,9 +376,11 @@ stf_getsrcifa6(struct ifnet *ifp, struct > 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; >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 220078
:
183567
|
183568
| 183569 |
183570
|
183590
|
187688
|
187689