diff options
-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 65bcf09251ef..b4a13178fb40 100644 --- a/net/xfrm/xfrm_input.c +++ b/net/xfrm/xfrm_input.c | |||
@@ -167,6 +167,11 @@ int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi, int encap_type) | |||
167 | goto drop_unlock; | 167 | goto drop_unlock; |
168 | } | 168 | } |
169 | 169 | ||
170 | if ((x->encap ? x->encap->encap_type : 0) != encap_type) { | ||
171 | XFRM_INC_STATS(net, LINUX_MIB_XFRMINSTATEMISMATCH); | ||
172 | goto drop_unlock; | ||
173 | } | ||
174 | |||
170 | if (x->props.replay_window && xfrm_replay_check(x, skb, seq)) { | 175 | if (x->props.replay_window && xfrm_replay_check(x, skb, seq)) { |
171 | XFRM_INC_STATS(net, LINUX_MIB_XFRMINSTATESEQERROR); | 176 | XFRM_INC_STATS(net, LINUX_MIB_XFRMINSTATESEQERROR); |
172 | goto drop_unlock; | 177 | goto drop_unlock; |