diff options
author | Chris Maynard <Christopher.Maynard@GTECH.COM> | 2012-09-19 17:57:54 +0000 |
---|---|---|
committer | Chris Maynard <Christopher.Maynard@GTECH.COM> | 2012-09-19 17:57:54 +0000 |
commit | 86db174948ce84b954c688f9fe6a895d4e512383 (patch) | |
tree | 8820900e7e5472281051848180e1c665b446445c /epan/dissectors/packet-icmp.c | |
parent | d729f21ad293e7cf5bd295318b564853a7330f7f (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.c | 2 |
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) | |