From c8c29842618b186b8eb802345504cc19d3d06872 Mon Sep 17 00:00:00 2001 From: bemarkt Date: Sat, 7 Dec 2024 16:40:31 +0800 Subject: [PATCH] Fix wrong parameter in ICMPv4Checksum --- stack_system.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stack_system.go b/stack_system.go index e7b68dd..e48b8b6 100644 --- a/stack_system.go +++ b/stack_system.go @@ -586,7 +586,7 @@ func (s *System) processIPv4ICMP(ipHdr header.IPv4, icmpHdr header.ICMPv4) error sourceAddress := ipHdr.SourceAddr() ipHdr.SetSourceAddr(ipHdr.DestinationAddr()) ipHdr.SetDestinationAddr(sourceAddress) - icmpHdr.SetChecksum(header.ICMPv4Checksum(icmpHdr, checksum.Checksum(icmpHdr.Payload(), 0))) + icmpHdr.SetChecksum(header.ICMPv4Checksum(icmpHdr[:header.ICMPv4MinimumSize], checksum.Checksum(icmpHdr.Payload(), 0))) ipHdr.SetChecksum(0) ipHdr.SetChecksum(^ipHdr.CalculateChecksum()) return nil