summaryrefslogtreecommitdiff
path: root/sys/netinet6/in6.c
diff options
context:
space:
mode:
authorAlexander Bluhm <bluhm@cvs.openbsd.org>2015-02-19 22:23:06 +0000
committerAlexander Bluhm <bluhm@cvs.openbsd.org>2015-02-19 22:23:06 +0000
commite344c320dba8022e6b65bd47814940e23db89fba (patch)
tree307217fe0390fa7485be47de6879c8eda5625c56 /sys/netinet6/in6.c
parent10c45f6d2e8ee5b5d349a83cf6fc296ff92e4e56 (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.c4
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;
}