aboutsummaryrefslogtreecommitdiff
path: root/sys/netipsec/ipsec.c
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2015-07-04 21:50:39 +0000
committerDimitry Andric <dim@FreeBSD.org>2015-07-04 21:50:39 +0000
commit4cd9b24e478b38e4e497f3ab98e09d6a00a5390d (patch)
tree37590f5c697f4198fdddec33c58aefdef0a5f485 /sys/netipsec/ipsec.c
parent1c3bbb013d1242432bd8d1f7821f987894214710 (diff)
parentaaa7cbfe1a437c726deff38c3903786d9249af6a (diff)
Notes
Diffstat (limited to 'sys/netipsec/ipsec.c')
-rw-r--r--sys/netipsec/ipsec.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/netipsec/ipsec.c b/sys/netipsec/ipsec.c
index 266f6d00d5a07..2ac87ab5523af 100644
--- a/sys/netipsec/ipsec.c
+++ b/sys/netipsec/ipsec.c
@@ -334,6 +334,12 @@ ipsec_getpolicybysock(struct mbuf *m, u_int dir, struct inpcb *inp, int *error)
IPSEC_ASSERT(dir == IPSEC_DIR_INBOUND || dir == IPSEC_DIR_OUTBOUND,
("invalid direction %u", dir));
+ if (!key_havesp(dir)) {
+ /* No SP found, use system default. */
+ sp = KEY_ALLOCSP_DEFAULT();
+ return (sp);
+ }
+
/* Set spidx in pcb. */
*error = ipsec_setspidx_inpcb(m, inp);
if (*error)