ipv6: fix endianness error in icmpv6_err
authorHannes Frederic Sowa <hannes@stressinduktion.org>
Sat, 11 Jun 2016 18:32:06 +0000 (20:32 +0200)
committerDanny Wood <danwood76@gmail.com>
Thu, 15 Jul 2021 09:45:31 +0000 (10:45 +0100)
IPv6 ping socket error handler doesn't correctly convert the new 32 bit
mtu to host endianness before using.

[Cherry-pick of net dcb94b88c09ce82a80e188d49bcffdc83ba215a6]

Bug: 29370996
Change-Id: Idf475e2555252d91e1d3fa92071a661242780074
Cc: Lorenzo Colitti <lorenzo@google.com>
Fixes: 6d0bfe22611602f ("net: ipv6: Add IPv6 support to the ping socket.")
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Acked-by: Lorenzo Colitti <lorenzo@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/icmp.c

index adb715b22f73ffe2f6d41ea4ed33cb5654393b8c..b0220040ef29baebbfac0800674928c07206015b 100644 (file)
@@ -96,7 +96,7 @@ static void icmpv6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
 
        if (!(type & ICMPV6_INFOMSG_MASK))
                if (icmp6->icmp6_type == ICMPV6_ECHO_REQUEST)
-                       ping_err(skb, offset, info);
+                       ping_err(skb, offset, ntohl(info));
 }
 
 static int icmpv6_rcv(struct sk_buff *skb);