svn path=/trunk/; revision=50432
This commit is contained in:
Evan Huus 2013-07-07 16:18:18 +00:00
parent ebf30a7a5d
commit cd7712fd2f
1 changed files with 23 additions and 8 deletions

View File

@ -252,9 +252,13 @@ dissect_dcom_Property_Guid(tvbuff_t *tvb, gint offset, packet_info *pinfo,
di = (dcerpc_info *)pinfo->private_data;
pg = (property_guids_t*)di->private_data;
DISSECTOR_ASSERT(pg->id_idx < MAX_ACTPROP_LIMIT);
offset = dissect_dcom_UUID(tvb, offset, pinfo, tree, drep,
hf_sysact_actpropclsid, &pg->guid[pg->id_idx++]);
if (pg->id_idx < MAX_ACTPROP_LIMIT) {
offset = dissect_dcom_UUID(tvb, offset, pinfo, tree, drep,
hf_sysact_actpropclsid, &pg->guid[pg->id_idx++]);
}
else {
/* TODO: expert info */
}
return offset;
}
@ -277,9 +281,13 @@ dissect_dcom_Property_Size(tvbuff_t *tvb, gint offset, packet_info *pinfo,
di = (dcerpc_info *)pinfo->private_data;
pg = (property_guids_t*)di->private_data;
DISSECTOR_ASSERT(pg->size_idx < MAX_ACTPROP_LIMIT);
offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, drep,
hf_sysact_actpropsize, &pg->size[pg->size_idx++]);
if (pg->size_idx < MAX_ACTPROP_LIMIT) {
offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, drep,
hf_sysact_actpropsize, &pg->size[pg->size_idx++]);
}
else {
/* TODO: expert info */
}
return offset;
}
@ -369,17 +377,24 @@ dissect_dcom_ActivationPropertiesBody(tvbuff_t *tvb, gint offset, packet_info *p
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;
DISSECTOR_ASSERT(pg->id_idx == pg->size_idx);
if (pg->id_idx == pg->size_idx) {
min_idx = pg->id_idx;
}
else {
/* TODO: expert info */
min_idx = MIN(pg->id_idx, pg->size_idx);
}
sub_item = proto_tree_add_text(tree, tvb, offset, 0, "Properties");
sub_tree = proto_item_add_subtree(sub_item, ett_properties);
old_offset = offset;
for (i = 0; i < pg->id_idx; i++) {
for (i = 0; i < min_idx; i++) {
offset = dissect_dcom_ActivationProperty(tvb, offset, pinfo, sub_tree, drep,
&pg->guid[i], pg->size[i]);
}