Jon Oberheide:

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.


svn path=/trunk/; revision=16937
This commit is contained in:
Jörg Mayer 2006-01-03 23:23:46 +00:00
parent fc2169de53
commit 74dc6c2d5f
1 changed files with 1 additions and 1 deletions

View File

@ -1115,7 +1115,7 @@ dissect_ip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
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,