Ethereal-dev: Re: [Ethereal-dev] IP defragment
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Guy Harris <gharris@xxxxxxxxxxxx>
Date: Tue, 17 Apr 2001 21:57:56 -0700
On Tue, Apr 17, 2001 at 05:55:48PM -0700, Guy Harris wrote: > > Most noticeable in the gui is that the subtree for fragments has been > > changed slightly. > > A few other small fixes. > > Here's a patch to bring it up to the current CVS version (1.130), fix > some comments (the checksum being computed by the "ip_checksum()" call > is the checksum of the header, not the entire packet) and fix a typo in > a blurb for a field. Checked in. There was another fix to be added - the check for a valid checksum and a non-truncated frame should be if ((ipsum==0) && (tvb_reported_length(tvb) <= tvb_length(tvb))) { not if ((ipsum==0) || (tvb_reported_length(tvb)!=tvb_length(tvb))) { (it should be an "and", not an "or", and the frame is non-truncated as long as the reported length is <= the captured length). I've attached a patch that's the result of a "diff -c" between your most recently sent version and the checked-in version (although, as a developer, you should be using anonymous CVS, unless you're behind a firewall that prevents that, in which case you should be downloading the nightly snapshots).
*** /tmp/packet-ip.c Tue Apr 17 21:53:53 2001 --- ./packet-ip.c Tue Apr 17 21:53:51 2001 *************** *** 1,7 **** /* packet-ip.c * Routines for IP and miscellaneous IP protocol packet disassembly * ! * $Id: packet-ip.c,v 1.129 2001/03/28 21:33:31 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@xxxxxxxx> --- 1,7 ---- /* packet-ip.c * Routines for IP and miscellaneous IP protocol packet disassembly * ! * $Id: packet-ip.c,v 1.131 2001/04/18 04:53:51 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@xxxxxxxx> *************** *** 45,50 **** --- 45,51 ---- #include "packet.h" #include "resolv.h" + #include "ipproto.h" #include "prefs.h" #include "etypes.h" #include "greproto.h" *************** *** 1190,1196 **** } /* ! * Compute the checksum of the IP packet */ ipsum = ip_checksum(tvb_get_ptr(tvb, offset, hlen), hlen); --- 1191,1197 ---- } /* ! * Compute the checksum of the IP header. */ ipsum = ip_checksum(tvb_get_ptr(tvb, offset, hlen), hlen); *************** *** 1287,1294 **** if (ip_defragment && (iph.ip_off & (IP_MF|IP_OFFSET))) { /* We're reassembling, and this is part of a fragmented datagram. Add the fragment to the hash table if the checksum is ok ! and the frame isnt truncated. */ ! if ((ipsum==0) || (tvb_reported_length(tvb)!=tvb_length(tvb))) { ipfd_head = ip_fragment_add(tvb, offset, pinfo, iph.ip_id, iph.ip_off); } else { ipfd_head=NULL; --- 1288,1295 ---- if (ip_defragment && (iph.ip_off & (IP_MF|IP_OFFSET))) { /* We're reassembling, and this is part of a fragmented datagram. Add the fragment to the hash table if the checksum is ok ! and the frame isn't truncated. */ ! if ((ipsum==0) && (tvb_reported_length(tvb) <= tvb_length(tvb))) { ipfd_head = ip_fragment_add(tvb, offset, pinfo, iph.ip_id, iph.ip_off); } else { ipfd_head=NULL; *************** *** 1941,1947 **** { &hf_ip_fragment_overlap_conflict, { "Conflicting data in fragment overlap", "ip.fragment.overlap.conflict", FT_BOOLEAN, BASE_NONE, NULL, 0x0, ! "Overlaping fragments contained conflicting data" }}, { &hf_ip_fragment_multiple_tails, { "Multiple tail fragments found", "ip.fragment.multipletails", FT_BOOLEAN, BASE_NONE, NULL, 0x0, --- 1942,1948 ---- { &hf_ip_fragment_overlap_conflict, { "Conflicting data in fragment overlap", "ip.fragment.overlap.conflict", FT_BOOLEAN, BASE_NONE, NULL, 0x0, ! "Overlapping fragments contained conflicting data" }}, { &hf_ip_fragment_multiple_tails, { "Multiple tail fragments found", "ip.fragment.multipletails", FT_BOOLEAN, BASE_NONE, NULL, 0x0, *************** *** 2050,2053 **** { dissector_add("ip.proto", IP_PROTO_ICMP, dissect_icmp, proto_icmp); } - --- 2051,2053 ----
- References:
- Re: [Ethereal-dev] IP defragment
- From: Ronnie Sahlberg
- Re: [Ethereal-dev] IP defragment
- From: Guy Harris
- Re: [Ethereal-dev] IP defragment
- Prev by Date: Re: [Ethereal-dev] ethereal build process broken
- Next by Date: Re: [Ethereal-dev] new add-on: Hethereal
- Previous by thread: Re: [Ethereal-dev] IP defragment
- Next by thread: [Ethereal-dev] idea for tetheral
- Index(es):