aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-ip.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2013-03-19 18:51:36 +0000
committerAnders Broman <anders.broman@ericsson.com>2013-03-19 18:51:36 +0000
commitc3a054e6c196eacb944027cf8306a250bc1144a3 (patch)
tree684be5d75b3e411bf5de43a0564b8ace8b798983 /epan/dissectors/packet-ip.c
parent7d7bf98a8e01e1307cd5f9a27bbdf36c75838097 (diff)
Don't calculate checksum for ICMP packsets with a partial IP packet.
svn path=/trunk/; revision=48423
Diffstat (limited to 'epan/dissectors/packet-ip.c')
-rw-r--r--epan/dissectors/packet-ip.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/epan/dissectors/packet-ip.c b/epan/dissectors/packet-ip.c
index fab4211295..98e447ab1a 100644
--- a/epan/dissectors/packet-ip.c
+++ b/epan/dissectors/packet-ip.c
@@ -2136,7 +2136,7 @@ dissect_ip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
/*
* If we have the entire IP header available, check the checksum.
*/
- if (ip_check_checksum && tvb_bytes_exist(tvb, offset, hlen)) {
+ if (ip_check_checksum && tvb_bytes_exist(tvb, offset, hlen)&&(!pinfo->flags.in_error_pkt)) {
ipsum = ip_checksum(tvb_get_ptr(tvb, offset, hlen), hlen);
if (tree) {
if (ipsum == 0) {