aboutsummaryrefslogtreecommitdiff
path: root/sys/netipsec/keysock.c
diff options
context:
space:
mode:
authorAndrey V. Elsukov <ae@FreeBSD.org>2018-03-11 18:10:59 +0000
committerAndrey V. Elsukov <ae@FreeBSD.org>2018-03-11 18:10:59 +0000
commitdccd41cb397f8689bd38050ee03163eca7194e3f (patch)
tree738de654175b2332c93787ed487085a9d7237a9f /sys/netipsec/keysock.c
parent26cb1e1dba1f53b147a8ffbdcfa29b68ef337f8c (diff)
downloadsrc-dccd41cb397f8689bd38050ee03163eca7194e3f.tar.gz
src-dccd41cb397f8689bd38050ee03163eca7194e3f.zip
Check that we have PF_KEY sockets before iterating over all RAW sockets.
MFC after: 2 weeks
Notes
Notes: svn path=/head/; revision=330772
Diffstat (limited to 'sys/netipsec/keysock.c')
-rw-r--r--sys/netipsec/keysock.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/netipsec/keysock.c b/sys/netipsec/keysock.c
index a0353d3ddbec..366584c8dccc 100644
--- a/sys/netipsec/keysock.c
+++ b/sys/netipsec/keysock.c
@@ -202,6 +202,11 @@ key_sendup_mbuf(struct socket *so, struct mbuf *m, int target)
PFKEYSTAT_INC(in_msgtype[msg->sadb_msg_type]);
}
mtx_lock(&rawcb_mtx);
+ if (V_key_cb.any_count == 0) {
+ mtx_unlock(&rawcb_mtx);
+ m_freem(m);
+ return (0);
+ }
LIST_FOREACH(rp, &V_rawcb_list, list)
{
if (rp->rcb_proto.sp_family != PF_KEY)