summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbluhm <bluhm@openbsd.org>2015-02-19 22:23:05 +0000
committerbluhm <bluhm@openbsd.org>2015-02-19 22:23:05 +0000
commit5a49b7046d3314926cdada082e2c3915d17aaea2 (patch)
treeb57fbd8b592f8538d4fcc05e3efe84dc0f7fcf36
parentset the eofflag in readdir like we're supposed to. (diff)
downloadwireguard-openbsd-5a49b7046d3314926cdada082e2c3915d17aaea2.tar.xz
wireguard-openbsd-5a49b7046d3314926cdada082e2c3915d17aaea2.zip
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@
-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;
}