Ethereal

[Ethereal-dev] [PATCH] packet-ip.c reassembly id
Google
 
Web Ethereal.com

Home | Introduction | Documentation | Lists | FAQ | Development | Wiki | Bugs

Ethereal-dev: January 2006


Greetings,

Ethereal does not take into account the protocol field of the IP header
when reassembling fragmented packets as specified in RFC791.  This can
lead to incorrect reassembly of packets with an identical src address,
dst address, and identification number, but with differing protocols.

The attached patch includes the protocol in the generation of the id
used to index into the reassembly table.

Regards,
Jon Oberheide

-- 
Jon Oberheide <jon@xxxxxxxxxxxxx>
GnuPG Key: 1024D/F47C17FE
Fingerprint: B716 DA66 8173 6EDD 28F6  F184 5842 1C89 F47C 17FE
Index: epan/dissectors/packet-ip.c
===================================================================
--- epan/dissectors/packet-ip.c	(revision 16931)
+++ epan/dissectors/packet-ip.c	(working copy)
@@ -1115,7 +1115,7 @@
       tvb_bytes_exist(tvb, offset, pinfo->iplen - pinfo->iphdrlen) &&
       ipsum == 0) {
 		ipfd_head = fragment_add_check(tvb, offset, pinfo, 
-			     iph->ip_id ^ src32 ^ dst32,
+			     iph->ip_p ^ iph->ip_id ^ src32 ^ dst32,
 			     ip_fragment_table,
 			     ip_reassembled_table,
 			     (iph->ip_off & IP_OFFSET)*8,

Attachment: signature.asc
Description: This is a digitally signed message part


Powered by MHonArc 2.6.10