diff options
author | Duan Jiong <duanj.fnst@cn.fujitsu.com> | 2013-08-22 12:07:35 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-08-22 20:08:21 -0700 |
commit | c92a59eca86f5d13ae4d481c3bae6b54609fe006 (patch) | |
tree | 627c129f365ec275624f1ffa5a50d3c1c13105c2 /net/ipv6/ndisc.c | |
parent | 6e1f99757a2b24b7255263b2240a0eb04215174d (diff) |
ipv6: handle Redirect ICMP Message with no Redirected Header option
rfc 4861 says the Redirected Header option is optional, so
the kernel should not drop the Redirect Message that has no
Redirected Header option. In this patch, the function
ip6_redirect_no_header() is introduced to deal with that
condition.
Signed-off-by: Duan Jiong <duanj.fnst@cn.fujitsu.com>
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Diffstat (limited to 'net/ipv6/ndisc.c')
-rw-r--r-- | net/ipv6/ndisc.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index 79aa9652ed86..04d31c2fbef1 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c @@ -1369,8 +1369,10 @@ static void ndisc_redirect_rcv(struct sk_buff *skb) if (!ndisc_parse_options(msg->opt, ndoptlen, &ndopts)) return; - if (!ndopts.nd_opts_rh) + if (!ndopts.nd_opts_rh) { + ip6_redirect_no_header(skb, dev_net(skb->dev), 0, 0); return; + } hdr = (u8 *)ndopts.nd_opts_rh; hdr += 8; |