aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-dcom-sysact.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2013-11-06 14:31:29 +0000
committerMichael Mann <mmann78@netscape.net>2013-11-06 14:31:29 +0000
commit22760b2d2a065249b21b7cf4be892aba71827279 (patch)
treed2806f1e93d9d29d1d042185340a27fd23eaf296 /epan/dissectors/packet-dcom-sysact.c
parent440ac8370fae681dd2e55c669226720b12491481 (diff)
Remove pinfo->private_data from DCERPC dissectors and instead have dcerpc_info* infomation be passed in as a function parameter. Bug 9387 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9387)
All "generated" source was manually modified (with the power of search/replace), but I believe the "source input" files have been adjusted (checked into revs 53098 and 53099) to reflect the necessary changes (with possible whitespace formatting differences). The Microsoft compiler doesn't flag "unused function parameters", so I apologize in advance if I may have missed a few. The "dcerpc_info* di" parameter is used in almost every function. svn path=/trunk/; revision=53100
Diffstat (limited to 'epan/dissectors/packet-dcom-sysact.c')
-rw-r--r--epan/dissectors/packet-dcom-sysact.c351
1 files changed, 166 insertions, 185 deletions
diff --git a/epan/dissectors/packet-dcom-sysact.c b/epan/dissectors/packet-dcom-sysact.c
index ea83a44f16..7ac9c83856 100644
--- a/epan/dissectors/packet-dcom-sysact.c
+++ b/epan/dissectors/packet-dcom-sysact.c
@@ -197,7 +197,7 @@ typedef struct property_guids {
/* Type Serialization Version 1 */
static int
dissect_TypeSzCommPrivHdr(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
proto_item *sub_item;
proto_tree *sub_tree;
@@ -210,10 +210,10 @@ dissect_TypeSzCommPrivHdr(tvbuff_t *tvb, gint offset, packet_info *pinfo,
sub_tree = proto_item_add_subtree(sub_item, ett_typeszcommhdr);
old_offset = offset;
- offset = dissect_dcom_BYTE(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_BYTE(tvb, offset, pinfo, sub_tree, di, drep,
hf_typesz_ver, NULL);
- offset = dissect_dcom_BYTE(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_BYTE(tvb, offset, pinfo, sub_tree, di, drep,
hf_typesz_endianness, &endian);
if (endian == 0x10)
*drep = DREP_LITTLE_ENDIAN;
@@ -221,9 +221,9 @@ dissect_TypeSzCommPrivHdr(tvbuff_t *tvb, gint offset, packet_info *pinfo,
*drep &= ~DREP_LITTLE_ENDIAN;
drep_tmp = DREP_LITTLE_ENDIAN;
- offset = dissect_dcom_WORD(tvb, offset, pinfo, sub_tree, &drep_tmp,
+ offset = dissect_dcom_WORD(tvb, offset, pinfo, sub_tree, di, &drep_tmp,
hf_typesz_commhdrlen, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, &drep_tmp,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, &drep_tmp,
hf_typesz_filler, NULL);
proto_item_set_len(sub_item, offset - old_offset);
@@ -231,9 +231,9 @@ dissect_TypeSzCommPrivHdr(tvbuff_t *tvb, gint offset, packet_info *pinfo,
old_offset = offset;
sub_item = proto_tree_add_item(tree, hf_typeszph, tvb, offset, 0, ENC_NA);
sub_tree = proto_item_add_subtree(sub_item, ett_typeszprivhdr);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_typesz_buflen, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_typesz_filler, NULL);
proto_item_set_len(sub_item, offset - old_offset);
@@ -244,16 +244,14 @@ dissect_TypeSzCommPrivHdr(tvbuff_t *tvb, gint offset, packet_info *pinfo,
static int
dissect_dcom_Property_Guid(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- dcerpc_info *di;
property_guids_t *pg;
- di = (dcerpc_info *)pinfo->private_data;
pg = (property_guids_t*)di->private_data;
if (pg->id_idx < MAX_ACTPROP_LIMIT) {
- offset = dissect_dcom_UUID(tvb, offset, pinfo, tree, drep,
+ offset = dissect_dcom_UUID(tvb, offset, pinfo, tree, di, drep,
hf_sysact_actpropclsid, &pg->guid[pg->id_idx++]);
}
else {
@@ -267,24 +265,22 @@ dissect_dcom_Property_Guid(tvbuff_t *tvb, gint offset, packet_info *pinfo,
static int
dissect_dcom_ActivationPropertiesCustomerHdr_PropertyGuids(tvbuff_t *tvb, gint offset,
- packet_info *pinfo, proto_tree *tree, guint8 *drep)
+ packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, dissect_dcom_Property_Guid);
+ offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, dissect_dcom_Property_Guid);
return offset;
}
static int
dissect_dcom_Property_Size(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- dcerpc_info *di;
property_guids_t *pg;
- di = (dcerpc_info *)pinfo->private_data;
pg = (property_guids_t*)di->private_data;
if (pg->size_idx < MAX_ACTPROP_LIMIT) {
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, di, drep,
hf_sysact_actpropsize, &pg->size[pg->size_idx++]);
}
else {
@@ -298,15 +294,15 @@ dissect_dcom_Property_Size(tvbuff_t *tvb, gint offset, packet_info *pinfo,
static int
dissect_dcom_ActivationPropertiesCustomerHdr_PropertySizes(tvbuff_t *tvb, gint offset,
- packet_info *pinfo, proto_tree *tree, guint8 *drep)
+ packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, dissect_dcom_Property_Size);
+ offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, dissect_dcom_Property_Size);
return offset;
}
static int
dissect_dcom_ActivationPropertiesCustomerHdr(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
guint32 u32TotalSize;
guint32 u32CustomHdrSize;
@@ -321,32 +317,32 @@ dissect_dcom_ActivationPropertiesCustomerHdr(tvbuff_t *tvb, gint offset, packet_
sub_tree = proto_item_add_subtree(sub_item, ett_commonheader);
old_offset = offset;
- offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, drep);
+ offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, di, drep);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_totalsize, &u32TotalSize);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_customhdrsize, &u32CustomHdrSize);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_res, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_dstctx, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_actpropnumber, &u32ActPropNumber);
- offset = dissect_dcom_UUID(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_UUID(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_actpropclsinfoid, NULL);
/* ClsIdPtr, SizesPtr */
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, di, drep,
dissect_dcom_ActivationPropertiesCustomerHdr_PropertyGuids, NDR_POINTER_UNIQUE,
"ClsIdPtr",hf_sysact_actpropclsid);
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, di, drep,
dissect_dcom_ActivationPropertiesCustomerHdr_PropertySizes, NDR_POINTER_UNIQUE,
"ClsSizesPtr",hf_sysact_actpropclsid);
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, di, drep,
NULL, NDR_POINTER_UNIQUE, "OpaqueDataPtr: Pointer To NULL", 0);
- offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
proto_item_set_len(sub_item, offset - old_offset);
return offset;
@@ -355,14 +351,14 @@ dissect_dcom_ActivationPropertiesCustomerHdr(tvbuff_t *tvb, gint offset, packet_
static int
dissect_dcom_ActivationProperty(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep, e_uuid_t *clsid, gint size)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep, e_uuid_t *clsid, gint size)
{
dcom_dissect_fn_t routine = NULL;
/* the following data depends on the clsid, get the routine by clsid */
routine = dcom_get_rountine_by_uuid(clsid);
if (routine){
- offset = routine(tvb, offset, pinfo, tree, drep, size);
+ offset = routine(tvb, offset, pinfo, tree, di, drep, size);
}
return offset;
@@ -372,18 +368,16 @@ dissect_dcom_ActivationProperty(tvbuff_t *tvb, gint offset, packet_info *pinfo,
static int
dissect_dcom_ActivationPropertiesBody(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
gint old_offset;
proto_item *sub_item;
proto_tree *sub_tree;
- dcerpc_info *di;
property_guids_t *pg;
guint32 i;
guint32 min_idx;
- di = (dcerpc_info *)pinfo->private_data;
pg = (property_guids_t*)di->private_data;
if (pg->id_idx == pg->size_idx) {
@@ -399,7 +393,7 @@ dissect_dcom_ActivationPropertiesBody(tvbuff_t *tvb, gint offset, packet_info *p
old_offset = offset;
for (i = 0; i < min_idx; i++) {
- offset = dissect_dcom_ActivationProperty(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_ActivationProperty(tvb, offset, pinfo, sub_tree, di, drep,
&pg->guid[i], pg->size[i]);
}
proto_item_set_len(sub_item, offset - old_offset);
@@ -409,9 +403,8 @@ dissect_dcom_ActivationPropertiesBody(tvbuff_t *tvb, gint offset, packet_info *p
static int
dissect_dcom_ActivationProperties(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep, gint size _U_)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep, gint size _U_)
{
- dcerpc_info *di;
proto_item *sub_item;
proto_tree *sub_tree;
property_guids_t *old_pg = NULL;
@@ -422,17 +415,16 @@ dissect_dcom_ActivationProperties(tvbuff_t *tvb, gint offset, packet_info *pinfo
sub_item = proto_tree_add_item(tree, hf_sysact_actproperties, tvb, offset, 0, ENC_NA);
sub_tree = proto_item_add_subtree(sub_item, ett_actproperties);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_totalsize, &u32TotalSize);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_res, &u32Res);
- di = (dcerpc_info *)pinfo->private_data;
old_pg = (property_guids_t*)di->private_data;
di->private_data = wmem_new0(wmem_packet_scope(), property_guids_t);
- offset = dissect_dcom_ActivationPropertiesCustomerHdr(tvb, offset, pinfo, sub_tree, drep);
- offset = dissect_dcom_ActivationPropertiesBody(tvb, offset, pinfo, sub_tree, drep);
+ offset = dissect_dcom_ActivationPropertiesCustomerHdr(tvb, offset, pinfo, sub_tree, di, drep);
+ offset = dissect_dcom_ActivationPropertiesBody(tvb, offset, pinfo, sub_tree, di, drep);
di->private_data = old_pg;
@@ -441,7 +433,7 @@ dissect_dcom_ActivationProperties(tvbuff_t *tvb, gint offset, packet_info *pinfo
static int
dissect_dcom_ContextMarshaler(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep, gint size _U_)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep, gint size _U_)
{
proto_item *sub_item;
proto_tree *sub_tree;
@@ -453,23 +445,23 @@ dissect_dcom_ContextMarshaler(tvbuff_t *tvb, gint offset, packet_info *pinfo,
sub_item = proto_tree_add_text(tree, tvb, offset, 0, "Context");
sub_tree = proto_item_add_subtree(sub_item, ett_dcom_context);
- offset = dissect_dcom_COMVERSION(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_COMVERSION(tvb, offset, pinfo, sub_tree, di, drep,
NULL, NULL);
- offset = dissect_dcom_UUID(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_UUID(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_ctx_id, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_ctx_flags, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_ctx_res, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_ctx_numextents, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_ctx_extentscnt, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_ctx_mashflags, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_ctx_count, &u32Count);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_ctx_frozen, NULL);
if (u32Count) {
@@ -484,7 +476,7 @@ dissect_dcom_ContextMarshaler(tvbuff_t *tvb, gint offset, packet_info *pinfo,
static int
dissect_dcom_SpecialSystemProperties(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep, gint size)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep, gint size)
{
proto_item *sub_item, *it;
proto_tree *sub_tree, *tr;
@@ -500,29 +492,29 @@ dissect_dcom_SpecialSystemProperties(tvbuff_t *tvb, gint offset, packet_info *pi
sub_item = proto_tree_add_text(tree, tvb, offset, size, "SpecialSystemProperties");
sub_tree = proto_item_add_subtree(sub_item, ett_dcom_spclsysprop);
- offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, drep);
+ offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, di, drep);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_spsysprop_sid, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_spsysprop_remotethissid, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_spsysprop_cltimpersonating, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_spsysprop_partitionid, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_spsysprop_defauthlvl, NULL);
- offset = dissect_dcom_UUID(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_UUID(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_spsysprop_partition, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_spsysprop_procrqstflgs, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_spsysprop_origclsctx, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_spsysprop_flags, NULL);
/*
*
- * offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ * offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
* hf_sysact_spsysprop_procid, NULL);
* offset = dissect_dcom_I8(tvb, offset, pinfo, sub_tree, drep,
* hf_sysact_spsysprop_hwnd, NULL);
@@ -532,7 +524,7 @@ dissect_dcom_SpecialSystemProperties(tvbuff_t *tvb, gint offset, packet_info *pi
"Reserved: 8 DWORDs");
tr = proto_item_add_subtree(it, ett_dcom_reserved);
for (i = 0; i < 8; i++) {
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, tr, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, tr, di, drep,
hf_sysact_res, NULL);
}
@@ -552,18 +544,18 @@ dissect_dcom_SpecialSystemProperties(tvbuff_t *tvb, gint offset, packet_info *pi
static int
dissect_dcom_InterfaceId(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- offset = dissect_dcom_UUID(tvb, offset, pinfo, tree, drep,
+ offset = dissect_dcom_UUID(tvb, offset, pinfo, tree, di, drep,
hf_sysact_instninfo_iid, NULL);
return offset;
}
static int
dissect_InstantiationInfoIids(tvbuff_t *tvb, gint offset,
- packet_info *pinfo, proto_tree *tree, guint8 *drep)
+ packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
+ offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep,
dissect_dcom_InterfaceId);
return offset;
@@ -571,7 +563,7 @@ dissect_InstantiationInfoIids(tvbuff_t *tvb, gint offset,
static int
dissect_dcom_InstantiationInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep, gint size)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep, gint size)
{
proto_item *sub_item;
proto_tree *sub_tree;
@@ -587,31 +579,31 @@ dissect_dcom_InstantiationInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo,
sub_item = proto_tree_add_text(tree, tvb, offset, size, "InstantiationInfo");
sub_tree = proto_item_add_subtree(sub_item, ett_dcom_instantianinfo);
- offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, drep);
+ offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, di, drep);
- offset = dissect_dcom_UUID(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_UUID(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_instninfo_clsid, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_instninfo_clsctx, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_instninfo_actflags, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_instninfo_issurrogate, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_instninfo_iidcount, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_instninfo_instflags, NULL);
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, di, drep,
dissect_InstantiationInfoIids, NDR_POINTER_UNIQUE,
"InterfaceIdsPtr", -1);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_instninfo_entiresize, NULL);
- offset = dissect_dcom_COMVERSION(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_COMVERSION(tvb, offset, pinfo, sub_tree, di, drep,
NULL, NULL);
- offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
len = offset - old_offset;
if (size < len) {
@@ -629,7 +621,7 @@ dissect_dcom_InstantiationInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo,
static int
dissect_ActCtxInfo_PropCtx(tvbuff_t *tvb _U_, gint offset _U_,
- packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+ packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info *di _U_, guint8 *drep _U_)
{
/*TBD*/
return offset;
@@ -638,23 +630,20 @@ dissect_ActCtxInfo_PropCtx(tvbuff_t *tvb _U_, gint offset _U_,
static int
dissect_ActCtxInfo_CltCtx(tvbuff_t *tvb, gint offset,
- packet_info *pinfo, proto_tree *tree, guint8 *drep)
+ packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- dcerpc_info *di;
-
- di = (dcerpc_info *)pinfo->private_data;
if (di->conformant_run) {
return offset;
}
- offset = dissect_dcom_MInterfacePointer(tvb, offset, pinfo, tree, drep,
+ offset = dissect_dcom_MInterfacePointer(tvb, offset, pinfo, tree, di, drep,
hf_sysact_context, NULL);
return offset;
}
static int
dissect_dcom_ActivationContextInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep, gint size)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep, gint size)
{
proto_item *sub_item;
proto_tree *sub_tree;
@@ -670,24 +659,24 @@ dissect_dcom_ActivationContextInfo(tvbuff_t *tvb, gint offset, packet_info *pinf
sub_item = proto_tree_add_text(tree, tvb, offset, size, "ActivationContextInfo");
sub_tree = proto_item_add_subtree(sub_item, ett_dcom_actctxinfo);
- offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, drep);
+ offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, di, drep);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_actctxinfo_cltok, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_res, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_res, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_res, NULL);
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, di, drep,
dissect_ActCtxInfo_CltCtx, NDR_POINTER_UNIQUE,
"ClientPtr", -1);
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, di, drep,
dissect_ActCtxInfo_PropCtx, NDR_POINTER_UNIQUE,
"PrototypePtr", -1);
- offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
len = offset - old_offset;
if (size < len) {
@@ -706,14 +695,12 @@ dissect_dcom_ActivationContextInfo(tvbuff_t *tvb, gint offset, packet_info *pinf
static int
dissect_dcom_COSERVERINFO(tvbuff_t *tvb, gint offset,
- packet_info *pinfo, proto_tree *tree, guint8 *drep, int hfindex)
+ packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep, int hfindex)
{
- dcerpc_info *di;
proto_item *sub_item;
proto_tree *sub_tree;
gint old_offset;
- di = (dcerpc_info *)pinfo->private_data;
if (di->conformant_run) {
return offset;
}
@@ -722,17 +709,17 @@ dissect_dcom_COSERVERINFO(tvbuff_t *tvb, gint offset,
sub_tree = proto_item_add_subtree(sub_item, ett_dcom_securityinfo);
old_offset = offset;
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_si_ci_res, NULL);
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, di, drep,
dissect_ndr_wchar_cvstring, NDR_POINTER_UNIQUE, "Name(wstring)",
hf_sysact_si_ci_string);
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, di, drep,
NULL, NDR_POINTER_UNIQUE, "AuthInfoPtr", -1);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_si_ci_res, NULL);
- offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
proto_item_set_len(sub_item, offset - old_offset);
@@ -741,16 +728,16 @@ dissect_dcom_COSERVERINFO(tvbuff_t *tvb, gint offset,
static int
dissect_dcom_SI_ServerInfo(tvbuff_t *tvb, gint offset,
- packet_info *pinfo, proto_tree *tree, guint8 *drep)
+ packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- offset = dissect_dcom_COSERVERINFO(tvb, offset, pinfo, tree, drep,
+ offset = dissect_dcom_COSERVERINFO(tvb, offset, pinfo, tree, di, drep,
hf_sysact_si_serverinfo);
return offset;
}
static int
dissect_dcom_SecurtiyInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep, gint size)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep, gint size)
{
proto_item *sub_item;
proto_tree *sub_tree;
@@ -766,16 +753,16 @@ dissect_dcom_SecurtiyInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo,
sub_item = proto_tree_add_text(tree, tvb, offset, size, "SecurityInfo");
sub_tree = proto_item_add_subtree(sub_item, ett_dcom_securityinfo);
- offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, drep);
+ offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, di ,drep);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_si_authflalgs, NULL);
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, di, drep,
dissect_dcom_SI_ServerInfo, NDR_POINTER_UNIQUE, "ServerInfoPtr", -1);
/*This SHOULD be NULL and MUST be ignored on receipt*/
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, di, drep,
NULL, NDR_POINTER_UNIQUE, "ReservedPtr", -1);
- offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
len = offset - old_offset;
if (size < len) {
@@ -793,7 +780,7 @@ dissect_dcom_SecurtiyInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo,
static int
dissect_dcom_LocationInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep, gint size)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep, gint size)
{
proto_item *sub_item;
proto_tree *sub_tree;
@@ -809,20 +796,20 @@ dissect_dcom_LocationInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo,
sub_item = proto_tree_add_text(tree, tvb, offset, size, "LocationInfo");
sub_tree = proto_item_add_subtree(sub_item, ett_dcom_locationinfo);
- offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, drep);
+ offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, di, drep);
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, di, drep,
dissect_ndr_wchar_cvstring, NDR_POINTER_UNIQUE, "MachineNamePtr",
hf_sysact_li_string);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_li_procid, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_li_apartid, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_li_ctxid, NULL);
- offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
len = offset - old_offset;
if (size < len) {
@@ -841,9 +828,9 @@ dissect_dcom_LocationInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo,
static int
dissect_dcom_ProtoSeq(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, drep,
+ offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, di, drep,
hf_sysact_sri_protseq, NULL);
return offset;
@@ -851,23 +838,21 @@ dissect_dcom_ProtoSeq(tvbuff_t *tvb, gint offset, packet_info *pinfo,
static int
dissect_dcom_ProtoSeqArray(tvbuff_t *tvb, gint offset,
- packet_info *pinfo, proto_tree *tree, guint8 *drep)
+ packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
+ offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep,
dissect_dcom_ProtoSeq);
return offset;
}
static int
dissect_dcom_customREMOTE_REQUEST_SCM_INFO(tvbuff_t *tvb, gint offset,
- packet_info *pinfo, proto_tree *tree, guint8 *drep)
+ packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- dcerpc_info *di;
proto_item *sub_item;
proto_tree *sub_tree;
gint old_offset;
- di = (dcerpc_info *)pinfo->private_data;
if (di->conformant_run) {
return offset;
}
@@ -876,13 +861,13 @@ dissect_dcom_customREMOTE_REQUEST_SCM_INFO(tvbuff_t *tvb, gint offset,
sub_tree = proto_item_add_subtree(sub_item, ett_dcom_rmtrqst);
old_offset = offset;
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_sri_cltimplvl, NULL);
- offset = dissect_dcom_WORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_WORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_sri_protseqnum, NULL);
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, di, drep,
dissect_dcom_ProtoSeqArray, NDR_POINTER_UNIQUE, "ProtocolSeqsArrayPtr", -1);
- offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
proto_item_set_len(sub_item, offset - old_offset);
@@ -891,7 +876,7 @@ dissect_dcom_customREMOTE_REQUEST_SCM_INFO(tvbuff_t *tvb, gint offset,
static int
dissect_dcom_ScmRqstInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep, gint size)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep, gint size)
{
proto_item *sub_item;
proto_tree *sub_tree;
@@ -907,15 +892,15 @@ dissect_dcom_ScmRqstInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo,
sub_item = proto_tree_add_text(tree, tvb, offset, size, "ScmRequestInfo");
sub_tree = proto_item_add_subtree(sub_item, ett_dcom_scmrqstinfo);
- offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, drep);
+ offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, di, drep);
/*This MUST be set to NULL and MUST be ignored on receipt*/
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, di, drep,
NULL, NDR_POINTER_UNIQUE, "Ptr", -1);
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, di, drep,
dissect_dcom_customREMOTE_REQUEST_SCM_INFO, NDR_POINTER_UNIQUE,
"RemoteRequestPtr", -1);
- offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
len = offset - old_offset;
if (size < len) {
@@ -934,54 +919,54 @@ dissect_dcom_ScmRqstInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo,
static int
dissect_dcom_IfId(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- offset = dissect_dcom_UUID(tvb, offset, pinfo, tree, drep,
+ offset = dissect_dcom_UUID(tvb, offset, pinfo, tree, di, drep,
hf_sysact_pi_iid, NULL);
return offset;
}
static int
dissect_dcom_IfIds(tvbuff_t *tvb, gint offset,
- packet_info *pinfo, proto_tree *tree, guint8 *drep)
+ packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
+ offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep,
dissect_dcom_IfId);
return offset;
}
static int
dissect_dcom_ReturnVal(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, di, drep,
hf_sysact_pi_retval, NULL);
return offset;
}
static int
dissect_dcom_ReturnVals(tvbuff_t *tvb, gint offset,
- packet_info *pinfo, proto_tree *tree, guint8 *drep)
+ packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
+ offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep,
dissect_dcom_ReturnVal);
return offset;
}
static int
dissect_OneInterfData(tvbuff_t *tvb, gint offset,
- packet_info *pinfo, proto_tree *tree, guint8 *drep)
+ packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- offset = dissect_dcom_MInterfacePointer(tvb, offset, pinfo, tree, drep,
+ offset = dissect_dcom_MInterfacePointer(tvb, offset, pinfo, tree, di, drep,
hf_sysact_pi_interf, NULL);
return offset;
}
static int
dissect_dcom_OneInterfDataPtr(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep,
dissect_OneInterfData, NDR_POINTER_UNIQUE, "InterfacePtr", -1);
return offset;
}
@@ -992,17 +977,17 @@ dissect_dcom_OneInterfDataPtr(tvbuff_t *tvb, gint offset, packet_info *pinfo,
*/
static int
dissect_dcom_InterfData(tvbuff_t *tvb, gint offset,
- packet_info *pinfo, proto_tree *tree, guint8 *drep)
+ packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep,
+ offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep,
dissect_dcom_OneInterfDataPtr);
- offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
return offset;
}
static int
dissect_dcom_PropsOutInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep, gint size)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep, gint size)
{
proto_item *sub_item;
proto_tree *sub_tree;
@@ -1018,18 +1003,18 @@ dissect_dcom_PropsOutInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo,
sub_item = proto_tree_add_text(tree, tvb, offset, size, "PropertiesOutput");
sub_tree = proto_item_add_subtree(sub_item, ett_dcom_propsoutput);
- offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, drep);
+ offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, di, drep);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_pi_ifnum, NULL);
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, di, drep,
dissect_dcom_IfIds, NDR_POINTER_UNIQUE, "InterfaceIdsPtr", -1);
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, di, drep,
dissect_dcom_ReturnVals, NDR_POINTER_UNIQUE, "ReturnValuesPtr", -1);
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, di, drep,
dissect_dcom_InterfData, NDR_POINTER_UNIQUE, "InterfacePtrsPtr", -1);
- offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
len = offset - old_offset;
if (size < len) {
@@ -1056,14 +1041,12 @@ dissect_dcom_PropsOutInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo,
*/
static int
dissect_dcom_OxidBindings(tvbuff_t *tvb, gint offset,
- packet_info *pinfo, proto_tree *tree, guint8 *drep)
+ packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- dcerpc_info *di;
proto_item *sub_item;
proto_tree *sub_tree;
gint old_offset;
- di = (dcerpc_info *)pinfo->private_data;
if (di->conformant_run) {
return offset;
}
@@ -1072,8 +1055,8 @@ dissect_dcom_OxidBindings(tvbuff_t *tvb, gint offset,
sub_item = proto_tree_add_text(tree, tvb, offset, 0, "OxidBindings");
sub_tree = proto_item_add_subtree(sub_item, ett_dcom_oxidbinding);
- offset = dissect_dcom_dcerpc_array_size(tvb, offset, pinfo, sub_tree, drep, NULL);
- offset = dissect_dcom_DUALSTRINGARRAY(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_dcerpc_array_size(tvb, offset, pinfo, sub_tree, di, drep, NULL);
+ offset = dissect_dcom_DUALSTRINGARRAY(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_scmri_binding, NULL);
proto_item_set_len(sub_item, offset - old_offset);
@@ -1083,14 +1066,12 @@ dissect_dcom_OxidBindings(tvbuff_t *tvb, gint offset,
static int
dissect_dcom_customREMOTE_REPLY_SCM_INFO(tvbuff_t *tvb, gint offset,
- packet_info *pinfo, proto_tree *tree, guint8 *drep)
+ packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
- dcerpc_info *di;
proto_item *sub_item;
proto_tree *sub_tree;
gint old_offset;
- di = (dcerpc_info *)pinfo->private_data;
if (di->conformant_run) {
return offset;
}
@@ -1099,17 +1080,17 @@ dissect_dcom_customREMOTE_REPLY_SCM_INFO(tvbuff_t *tvb, gint offset,
sub_tree = proto_item_add_subtree(sub_item, ett_dcom_rmtresp);
old_offset = offset;
- offset = dissect_dcom_ID(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_ID(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_scmri_oxid, NULL);
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, di, drep,
dissect_dcom_OxidBindings, NDR_POINTER_UNIQUE, "OxidBindingsPtr", -1);
- offset = dissect_dcom_UUID(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_UUID(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_scmri_rmtunknid, NULL);
- offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep,
hf_sysact_scmri_authhint, NULL);
- offset = dissect_dcom_COMVERSION(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_dcom_COMVERSION(tvb, offset, pinfo, sub_tree, di, drep,
NULL, NULL);
- offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
proto_item_set_len(sub_item, offset - old_offset);
@@ -1119,7 +1100,7 @@ dissect_dcom_customREMOTE_REPLY_SCM_INFO(tvbuff_t *tvb, gint offset,
static int
dissect_dcom_ScmReplyInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo,
- proto_tree *tree, guint8 *drep, gint size)
+ proto_tree *tree, dcerpc_info *di, guint8 *drep, gint size)
{
proto_item *sub_item;
proto_tree *sub_tree;
@@ -1135,15 +1116,15 @@ dissect_dcom_ScmReplyInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo,
sub_item = proto_tree_add_text(tree, tvb, offset, size, "ScmReplyInfo");
sub_tree = proto_item_add_subtree(sub_item, ett_dcom_scmrespinfo);
- offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, drep);
+ offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, di, drep);
/*This MUST be set to NULL and MUST be ignored on receipt*/
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, di, drep,
NULL, NDR_POINTER_UNIQUE, "Ptr", -1);
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, drep,
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, sub_tree, di, drep,
dissect_dcom_customREMOTE_REPLY_SCM_INFO, NDR_POINTER_UNIQUE,
"RemoteRequestPtr", -1);
- offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
len = offset - old_offset;
if (size < len) {
@@ -1180,32 +1161,32 @@ sysact_register_routines(void)
static int
dissect_remsysact_remotecreateinstance_rqst(tvbuff_t *tvb, int offset,
- packet_info *pinfo, proto_tree *tree, guint8 *drep)
+ packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
sysact_register_routines();
- offset = dissect_dcom_this(tvb, offset, pinfo, tree, drep);
+ offset = dissect_dcom_this(tvb, offset, pinfo, tree, di, drep);
/* XXX - what is this? */
offset = dissect_dcom_nospec_data(tvb, offset, pinfo, tree, drep, 4);
- offset = dissect_dcom_PMInterfacePointer(tvb, offset, pinfo, tree, drep,
+ offset = dissect_dcom_PMInterfacePointer(tvb, offset, pinfo, tree, di, drep,
hf_sysact_actproperties, NULL /* XXX */);
return offset;
}
static int
dissect_remsysact_remotecreateinstance_resp(tvbuff_t *tvb, int offset,
- packet_info *pinfo, proto_tree *tree, guint8 *drep)
+ packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep)
{
sysact_register_routines();
- offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep);
+ offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep);
- offset = dissect_dcom_PMInterfacePointer(tvb, offset, pinfo, tree, drep,
+ offset = dissect_dcom_PMInterfacePointer(tvb, offset, pinfo, tree, di, drep,
hf_sysact_actproperties, NULL /* XXX */);
- offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep,
+ offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep,
NULL /* pu32HResult */);
return offset;