diff options
Diffstat (limited to 'net/ipv4/esp4.c')
-rw-r--r-- | net/ipv4/esp4.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/ipv4/esp4.c b/net/ipv4/esp4.c index c31bccb9b526..1738113268bc 100644 --- a/net/ipv4/esp4.c +++ b/net/ipv4/esp4.c | |||
@@ -9,6 +9,7 @@ | |||
9 | #include <linux/pfkeyv2.h> | 9 | #include <linux/pfkeyv2.h> |
10 | #include <linux/random.h> | 10 | #include <linux/random.h> |
11 | #include <linux/spinlock.h> | 11 | #include <linux/spinlock.h> |
12 | #include <linux/in6.h> | ||
12 | #include <net/icmp.h> | 13 | #include <net/icmp.h> |
13 | #include <net/protocol.h> | 14 | #include <net/protocol.h> |
14 | #include <net/udp.h> | 15 | #include <net/udp.h> |
@@ -224,6 +225,10 @@ static int esp_input(struct xfrm_state *x, struct sk_buff *skb) | |||
224 | 225 | ||
225 | /* ... check padding bits here. Silly. :-) */ | 226 | /* ... check padding bits here. Silly. :-) */ |
226 | 227 | ||
228 | /* RFC4303: Drop dummy packets without any error */ | ||
229 | if (nexthdr[1] == IPPROTO_NONE) | ||
230 | goto out; | ||
231 | |||
227 | iph = ip_hdr(skb); | 232 | iph = ip_hdr(skb); |
228 | ihl = iph->ihl * 4; | 233 | ihl = iph->ihl * 4; |
229 | 234 | ||