[IPv6] ESP: Discard dummy packets introduced in rfc4303
authorThomas Graf <tgraf@suug.ch>
Tue, 11 Dec 2007 00:53:29 +0000 (16:53 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Tue, 11 Dec 2007 10:45:27 +0000 (02:45 -0800)
RFC4303 introduces dummy packets with a nexthdr value of 59
to implement traffic confidentiality. Such packets need to
be dropped silently and the payload may not be attempted to
be parsed as it consists of random chunk.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/esp6.c

index 7db66f10e00d18f80d705fd83459ac5aec43f327..44405325467626a5ca473ef647872ec8cdb14753 100644 (file)
@@ -230,6 +230,12 @@ static int esp6_input(struct xfrm_state *x, struct sk_buff *skb)
                }
                /* ... check padding bits here. Silly. :-) */
 
+               /* RFC4303: Drop dummy packets without any error */
+               if (nexthdr[1] == IPPROTO_NONE) {
+                       ret = -EINVAL;
+                       goto out;
+               }
+
                pskb_trim(skb, skb->len - alen - padlen - 2);
                ret = nexthdr[1];
        }