diff options
Diffstat (limited to 'net/ipv4/icmp.c')
-rw-r--r-- | net/ipv4/icmp.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c index 4b7a0d946a0d..ff124d40c585 100644 --- a/net/ipv4/icmp.c +++ b/net/ipv4/icmp.c | |||
@@ -484,7 +484,7 @@ void icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info) | |||
484 | u8 _inner_type, *itp; | 484 | u8 _inner_type, *itp; |
485 | 485 | ||
486 | itp = skb_header_pointer(skb_in, | 486 | itp = skb_header_pointer(skb_in, |
487 | skb_in->nh.raw + | 487 | skb_network_header(skb_in) + |
488 | (iph->ihl << 2) + | 488 | (iph->ihl << 2) + |
489 | offsetof(struct icmphdr, | 489 | offsetof(struct icmphdr, |
490 | type) - | 490 | type) - |
@@ -536,7 +536,7 @@ void icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info) | |||
536 | icmp_param.data.icmph.un.gateway = info; | 536 | icmp_param.data.icmph.un.gateway = info; |
537 | icmp_param.data.icmph.checksum = 0; | 537 | icmp_param.data.icmph.checksum = 0; |
538 | icmp_param.skb = skb_in; | 538 | icmp_param.skb = skb_in; |
539 | icmp_param.offset = skb_in->nh.raw - skb_in->data; | 539 | icmp_param.offset = skb_network_offset(skb_in); |
540 | icmp_out_count(icmp_param.data.icmph.type); | 540 | icmp_out_count(icmp_param.data.icmph.type); |
541 | inet_sk(icmp_socket->sk)->tos = tos; | 541 | inet_sk(icmp_socket->sk)->tos = tos; |
542 | ipc.addr = iph->saddr; | 542 | ipc.addr = iph->saddr; |