| From 028dbd1f0615d1ed1f0dde7d321c9f9af593cad8 Mon Sep 17 00:00:00 2001 |
| From: Li Wei <lw@cn.fujitsu.com> |
| Date: Thu, 21 Feb 2013 00:09:54 +0000 |
| Subject: ipv4: fix a bug in ping_err(). |
| |
| |
| From: Li Wei <lw@cn.fujitsu.com> |
| |
| [ Upstream commit b531ed61a2a2a77eeb2f7c88b49aa5ec7d9880d8 ] |
| |
| We should get 'type' and 'code' from the outer ICMP header. |
| |
| Signed-off-by: Li Wei <lw@cn.fujitsu.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| net/ipv4/ping.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/net/ipv4/ping.c |
| +++ b/net/ipv4/ping.c |
| @@ -320,8 +320,8 @@ void ping_err(struct sk_buff *skb, u32 i |
| struct iphdr *iph = (struct iphdr *)skb->data; |
| struct icmphdr *icmph = (struct icmphdr *)(skb->data+(iph->ihl<<2)); |
| struct inet_sock *inet_sock; |
| - int type = icmph->type; |
| - int code = icmph->code; |
| + int type = icmp_hdr(skb)->type; |
| + int code = icmp_hdr(skb)->code; |
| struct net *net = dev_net(skb->dev); |
| struct sock *sk; |
| int harderr; |