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; |
