summaryrefslogtreecommitdiffhomepage
path: root/test/syscalls/linux
diff options
context:
space:
mode:
authorAustin Kiekintveld <akiek@google.com>2019-07-31 11:25:25 -0700
committergVisor bot <gvisor-bot@google.com>2019-07-31 11:26:41 -0700
commit12c4eb294a43f4a84a789871730869d164ef52c9 (patch)
treed765c0eed3a0d616e1bc229a68ee8e1073e96444 /test/syscalls/linux
parentc6e6d92cb116fb79a8acd2ee64726b6b53135ad4 (diff)
Fix ICMPv4 EchoReply packet checksum
The checksum was not being reset before being re-calculated and sent out. This caused the sent checksum to always be `0x0800`. Fixes #605. PiperOrigin-RevId: 260965059
Diffstat (limited to 'test/syscalls/linux')
-rw-r--r--test/syscalls/linux/raw_socket_icmp.cc5
1 files changed, 2 insertions, 3 deletions
diff --git a/test/syscalls/linux/raw_socket_icmp.cc b/test/syscalls/linux/raw_socket_icmp.cc
index ad19120d5..1c07bacc2 100644
--- a/test/syscalls/linux/raw_socket_icmp.cc
+++ b/test/syscalls/linux/raw_socket_icmp.cc
@@ -470,9 +470,8 @@ void RawSocketICMPTest::ExpectICMPSuccess(const struct icmphdr& icmp) {
EXPECT_EQ(recvd_icmp->un.echo.id, icmp.un.echo.id);
// A couple are different.
EXPECT_EQ(recvd_icmp->type, ICMP_ECHOREPLY);
- // The checksum is computed in such a way that it is guaranteed to have
- // changed.
- EXPECT_NE(recvd_icmp->checksum, icmp.checksum);
+ // The checksum computed over the reply should still be valid.
+ EXPECT_EQ(Checksum(recvd_icmp), 0);
break;
}
}