diff options
author | Andrey V. Elsukov <ae@FreeBSD.org> | 2018-03-11 18:10:59 +0000 |
---|---|---|
committer | Andrey V. Elsukov <ae@FreeBSD.org> | 2018-03-11 18:10:59 +0000 |
commit | dccd41cb397f8689bd38050ee03163eca7194e3f (patch) | |
tree | 738de654175b2332c93787ed487085a9d7237a9f /sys/netipsec/keysock.c | |
parent | 26cb1e1dba1f53b147a8ffbdcfa29b68ef337f8c (diff) | |
download | src-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.c | 5 |
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) |