aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-icmp.c
diff options
context:
space:
mode:
authorChris Maynard <Christopher.Maynard@GTECH.COM>2012-09-19 17:57:54 +0000
committerChris Maynard <Christopher.Maynard@GTECH.COM>2012-09-19 17:57:54 +0000
commit86db174948ce84b954c688f9fe6a895d4e512383 (patch)
tree8820900e7e5472281051848180e1c665b446445c /epan/dissectors/packet-icmp.c
parentd729f21ad293e7cf5bd295318b564853a7330f7f (diff)
Fix request/response tracking with checksum corner case.
svn path=/trunk/; revision=45007
Diffstat (limited to 'epan/dissectors/packet-icmp.c')
-rw-r--r--epan/dissectors/packet-icmp.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/epan/dissectors/packet-icmp.c b/epan/dissectors/packet-icmp.c
index 000c090c41..d9b9bcd146 100644
--- a/epan/dissectors/packet-icmp.c
+++ b/epan/dissectors/packet-icmp.c
@@ -1358,6 +1358,8 @@ dissect_icmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
tmp[0] = ~tvb_get_ntohs(tvb, 2);
tmp[1] = ~0x0800; /* The difference between echo request & reply */
conv_key[0] = ip_checksum((guint8 *)&tmp, sizeof(tmp));
+ if (conv_key[0] == 0)
+ conv_key[0] = 0xffff;
if (pinfo->flags.in_gre_pkt)
conv_key[0] |= 0x00010000; /* set a bit for "in GRE" */
conv_key[1] = (guint32)((tvb_get_ntohs(tvb, 4) << 16) |