Ethereal-dev: Re: [Ethereal-dev] desegmentation patch

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Guy Harris <gharris@xxxxxxxxx>
Date: Sun, 3 Feb 2002 15:31:57 -0800
On Sun, Feb 03, 2002 at 02:44:43AM +0000, Ricardo Barroetave�a wrote:
> Yes, forgot to check fd_i->len+fd_i->offset > dfpos. It was going to fail in 
> a complete overlap. I'm attaching a diff file w/ the "if" in it.

Checked in, along with your earlier patches to the other files.

> >It may be that the reassembly code isn't dealing with retransmissions,
> >out-of-order transmissions, and overlaps as well as it should.
> *fragment_add() should handle retrans, overlaps and out-of-order.
> *The problem is w/ desegment_tcp(), right now it's not ready for handling 
> out-of-order segments.

Yes - if it sees a segment that's out-of-order (detected by seeing that
its starting sequence number isn't the next sequence number it's
expecting), it should perhaps start a reassembly, so that when the data
just *before* the out-of-order segment is seen, it reassembles that
data.

If another segment arrives that contains the data with the next sequence
number, but that doesn't go all the way to the data just before the
out-of-order segment, it might be nice if it tried handing that directly
to the subdissector, so that it doesn't do reassembly when it's not
needed.