|
@@ -9,6 +9,7 @@
|
|
#include <linux/pfkeyv2.h>
|
|
#include <linux/pfkeyv2.h>
|
|
#include <linux/random.h>
|
|
#include <linux/random.h>
|
|
#include <linux/spinlock.h>
|
|
#include <linux/spinlock.h>
|
|
|
|
+#include <linux/in6.h>
|
|
#include <net/icmp.h>
|
|
#include <net/icmp.h>
|
|
#include <net/protocol.h>
|
|
#include <net/protocol.h>
|
|
#include <net/udp.h>
|
|
#include <net/udp.h>
|
|
@@ -224,6 +225,10 @@ static int esp_input(struct xfrm_state *x, struct sk_buff *skb)
|
|
|
|
|
|
/* ... check padding bits here. Silly. :-) */
|
|
/* ... check padding bits here. Silly. :-) */
|
|
|
|
|
|
|
|
+ /* RFC4303: Drop dummy packets without any error */
|
|
|
|
+ if (nexthdr[1] == IPPROTO_NONE)
|
|
|
|
+ goto out;
|
|
|
|
+
|
|
iph = ip_hdr(skb);
|
|
iph = ip_hdr(skb);
|
|
ihl = iph->ihl * 4;
|
|
ihl = iph->ihl * 4;
|
|
|
|
|