diff options
author | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2002-05-07 10:07:55 +0000 |
---|---|---|
committer | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2002-05-07 10:07:55 +0000 |
commit | 04158638aec8457f54b9b55c4664df607769c344 (patch) | |
tree | 6057f4e9d0552649a116ddf7df8c7d212178c7e5 /packet-dcerpc.h | |
parent | d471f94388a5dd1ca01e69520a9994c8b36df6ce (diff) |
Added extra check in the function that parses NDR pointers.
When the representation for a pointer type gets dissected, the dissector
is actually called twice. Once with conformant_run==1 and once ==0.
The idea is that when conformant_run is ==1, the ONLY bytes that will be
dissected and would be the array structure preceeding the actual data.
And the normal data and content will be dissected when conformant_run ==0.
This is to handle the case properly when conformant arrays are embedded inside
aggregated types, in which case there will be other data inserted between
these array control data, and the array content.
The check that is added will assert that no other data is actually eaten
for conformant_run==1 than just this data.
This will help debugging dcerpc dissectors.
svn path=/trunk/; revision=5412
Diffstat (limited to 'packet-dcerpc.h')
-rw-r--r-- | packet-dcerpc.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/packet-dcerpc.h b/packet-dcerpc.h index 2b4b0c7689..eae6994cda 100644 --- a/packet-dcerpc.h +++ b/packet-dcerpc.h @@ -1,7 +1,7 @@ /* packet-dcerpc.h * Copyright 2001, Todd Sabin <tas@webspan.net> * - * $Id: packet-dcerpc.h,v 1.13 2002/04/22 09:43:03 guy Exp $ + * $Id: packet-dcerpc.h,v 1.14 2002/05/07 10:07:55 sahlberg Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -199,6 +199,7 @@ typedef struct _dcerpc_info { guint16 smb_fid; /* FID for DCERPC over SMB */ gboolean request; gboolean conformant_run; + gint32 conformant_eaten; /* how many bytes did the conformant run eat?*/ guint32 array_max_count; /* max_count for conformant arrays */ guint32 array_max_count_offset; guint32 array_offset; |