From 233974b32706c7d25ad289bcbb449d407a47837e Mon Sep 17 00:00:00 2001 From: Zhe Weng Date: Thu, 24 Nov 2022 16:50:11 +0800 Subject: [PATCH] net/icmpv6: Fix icmpv6 checksum calculation in icmpv6_reply The second param of icmpv6_chksum is `iplen`, which indicates `The size of the IPv6 header`. Signed-off-by: Zhe Weng --- net/icmpv6/icmpv6_reply.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/icmpv6/icmpv6_reply.c b/net/icmpv6/icmpv6_reply.c index c309a8100a..3bd4192d52 100644 --- a/net/icmpv6/icmpv6_reply.c +++ b/net/icmpv6/icmpv6_reply.c @@ -139,7 +139,7 @@ void icmpv6_reply(FAR struct net_driver_s *dev, int type, int code, int data) /* Calculate the ICMPv6 checksum over the ICMPv6 header and payload. */ icmpv6->chksum = 0; - icmpv6->chksum = ~icmpv6_chksum(dev, datalen + sizeof(*icmpv6)); + icmpv6->chksum = ~icmpv6_chksum(dev, IPv6_HDRLEN); if (icmpv6->chksum == 0) { icmpv6->chksum = 0xffff;