diff options
author | Alexander Bluhm <bluhm@cvs.openbsd.org> | 2015-02-19 22:23:06 +0000 |
---|---|---|
committer | Alexander Bluhm <bluhm@cvs.openbsd.org> | 2015-02-19 22:23:06 +0000 |
commit | e344c320dba8022e6b65bd47814940e23db89fba (patch) | |
tree | 307217fe0390fa7485be47de6879c8eda5625c56 /sys/netinet6/in6.c | |
parent | 10c45f6d2e8ee5b5d349a83cf6fc296ff92e4e56 (diff) |
All other calls to pfxlist_onlink_check() are protected by splsoftnet.
Put an splsoftnet() around the call to pfxlist_onlink_check() in
in6_control(SIOCAIFADDR_IN6). Include the call to dohooks() in the
protection like it is done elsewhere.
splassert failure reported and fix tested by matthieu@; OK mikeb@
Diffstat (limited to 'sys/netinet6/in6.c')
-rw-r--r-- | sys/netinet6/in6.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c index 588bc1c3865..f61d25ef33f 100644 --- a/sys/netinet6/in6.c +++ b/sys/netinet6/in6.c @@ -1,4 +1,4 @@ -/* $OpenBSD: in6.c,v 1.152 2015/01/27 10:34:27 mpi Exp $ */ +/* $OpenBSD: in6.c,v 1.153 2015/02/19 22:23:05 bluhm Exp $ */ /* $KAME: in6.c,v 1.372 2004/06/14 08:14:21 itojun Exp $ */ /* @@ -552,6 +552,7 @@ in6_control(struct socket *so, u_long cmd, caddr_t data, struct ifnet *ifp) pr->ndpr_refcnt++; } + s = splsoftnet(); /* * this might affect the status of autoconfigured addresses, * that is, this address might make other addresses detached. @@ -559,6 +560,7 @@ in6_control(struct socket *so, u_long cmd, caddr_t data, struct ifnet *ifp) pfxlist_onlink_check(); dohooks(ifp->if_addrhooks, 0); + splx(s); break; } |