diff options
Diffstat (limited to 'net/xfrm')
-rw-r--r-- | net/xfrm/xfrm_input.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/xfrm/xfrm_input.c b/net/xfrm/xfrm_input.c index 99e3a9e5285e..4218164f4f5e 100644 --- a/net/xfrm/xfrm_input.c +++ b/net/xfrm/xfrm_input.c | |||
@@ -163,6 +163,11 @@ int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi, int encap_type) | |||
163 | 163 | ||
164 | skb->sp->xvec[skb->sp->len++] = x; | 164 | skb->sp->xvec[skb->sp->len++] = x; |
165 | 165 | ||
166 | if (xfrm_tunnel_check(skb, x, family)) { | ||
167 | XFRM_INC_STATS(net, LINUX_MIB_XFRMINSTATEMODEERROR); | ||
168 | goto drop; | ||
169 | } | ||
170 | |||
166 | spin_lock(&x->lock); | 171 | spin_lock(&x->lock); |
167 | if (unlikely(x->km.state == XFRM_STATE_ACQ)) { | 172 | if (unlikely(x->km.state == XFRM_STATE_ACQ)) { |
168 | XFRM_INC_STATS(net, LINUX_MIB_XFRMACQUIREERROR); | 173 | XFRM_INC_STATS(net, LINUX_MIB_XFRMACQUIREERROR); |