Ethereal-dev: Re: [Ethereal-dev] SMB Transaction[2] reassebbly

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

From: "Ronnie Sahlberg" <rsahlber@xxxxxxxxxxxxxx>
Date: Mon, 26 Nov 2001 23:24:20 +1100
Hi Guy,

Tiny tiny patch.
Most of it are a few comments regarding the safety of calling subdissector
from
dissect_transaction_response() with  s_tvp==sp_tvb==NULL.

I think it should be fairly safe to call all those subdissectors with
setup==NULL.
(which s_tvb would be if called from a non-first SMB Transaction fragment.)


If we can call the subdissectors for non-first fragments with
s_tvb/sp_tvb==NULL
and the subdissectors should still work reasonably reliable
then one would only need to worry about parameter+data for reassembly.
It would be possible to redo the reassembly to reassemble a block containing
both param and data
and then just subdivide it before calling the subdissectors.
(this is possible since totaldata and totalparam is present in every SMB
Transaction fragment)



----- Original Message -----
From: "Ronnie Sahlberg"
To: "Guy Harris"
Sent: Monday, November 26, 2001 9:25 PM
Subject: Re: [Ethereal-dev] SMB Transaction[2] reassebbly


> Yes,
> If we did it for the last packet, then it wouldnt be an issue.
> Look at what parameters dissect_smb_pipe() wants. :-)
> (IPv4/IPv6/etc does not have subdissectors which needs a lot of tvbuffs as
> parameters)
>
> One option would be to dissect everything, including parameters,setup and
> byte areas into
> one single tvbuff and then create the sub-tvb's as d_tvb, p_tvb and
friends
> from that big one when
> it is reassembled and when the subdissectors are called..
> Then it would be possible to call the subdissector for the last (or for
> every) packet.
>
>
> Ill look into if that is possible.
>
>
> ----- Original Message -----
> From: "Guy Harris"
> Sent: Monday, November 26, 2001 8:59 PM
> Subject: Re: [Ethereal-dev] SMB Transaction[2] reassebbly
>
>
> > On Sun, Nov 25, 2001 at 11:54:48PM +1100, Ronnie Sahlberg wrote:
> > > Attached patch fixes a small typo in packet-smb-pipe.c
> > > (s_tvb where it should be sp_tvb)
> >
> > Checked in.
> >
> > > The patch also adds reassembly of fragmented SMB Transaction and
> > > Transaction2 responses.
> >
> > Checked in, with some changes found when doing regression testing
> > (without reassembly enabled).
> >
> > > It only reassembles the data field of a transaction SMB.
> > > It only displays the reassembled data field for the Transaction
command
> > > holding the first fragment.
> >
> > Perhaps if it were done for the command holding the *last* fragment...
> >
> > > The problem right now with the patch is that when we first see the
> packet
> > > holding the first fragment, we do not
> > > have a fully reassembled packet so we need to rescan the command list
> (by
> > > applying an empty "" display filter)
> > > before we see the proper COL_INFO stuff and before displayfilters
works
> on
> > > parts of the reassembled PDU not residing inside the
> > > first fragment.
> >
> > ...that wouldn't be an issue.
> >
> > The reassembled data is only shown for the last fragment for
> > IPv4/IPv6/CLNP reassembly, and TCP segment reassembly, so that problem
> > doesn't show up there.
> >
> > _______________________________________________
> > Ethereal-dev mailing list
> > Ethereal-dev@xxxxxxxxxxxx
> > http://www.ethereal.com/mailman/listinfo/ethereal-dev
>
>
> _______________________________________________
> Ethereal-dev mailing list
> Ethereal-dev@xxxxxxxxxxxx
> http://www.ethereal.com/mailman/listinfo/ethereal-dev

Attachment: smb_patch.diff.gz
Description: GNU Zip compressed data