static int lsarpc_dissect_element_lsa_LUIDAttribute_attribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int lsarpc_dissect_element_lsa_PrivilegeSet_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int lsarpc_dissect_element_lsa_PrivilegeSet_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
-static int lsarpc_dissect_element_lsa_PrivilegeSet_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PrivilegeSet_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, struct ndr_generic_array *nga);
static int lsarpc_dissect_element_lsa_PrivilegeSet_set_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int lsarpc_dissect_conformant_lsa_PrivilegeSet_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, struct ndr_generic_array *nga);
static int lsarpc_dissect_element_lsa_DATA_BUF_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int lsarpc_dissect_element_lsa_DATA_BUF_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int lsarpc_dissect_element_lsa_DATA_BUF_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int
lsarpc_dissect_element_lsa_Strings_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_Strings_names__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_Strings_names__);
return offset;
}
static int
lsarpc_dissect_element_lsa_AsciiString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_AsciiString_string__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_AsciiString_string__);
return offset;
}
static int
lsarpc_dissect_element_lsa_AsciiStringLarge_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_AsciiStringLarge_string__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_AsciiStringLarge_string__);
return offset;
}
static int
lsarpc_dissect_element_lsa_BinaryString_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_BinaryString_array__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_BinaryString_array__);
return offset;
}
static int
lsarpc_dissect_element_lsa_PrivArray_privs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_PrivArray_privs__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_PrivArray_privs__);
return offset;
}
static int
lsarpc_dissect_element_lsa_ObjectAttribute_object_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- char *data;
+ char *data = NULL;
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
- offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_lsarpc_lsa_ObjectAttribute_object_name, FALSE, &data);
+ offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_lsarpc_lsa_ObjectAttribute_object_name, FALSE, &nga, &data);
proto_item_append_text(tree, ": %s", data);
return offset;
static int
lsarpc_dissect_element_lsa_AuditEventsInfo_settings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_AuditEventsInfo_settings__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_AuditEventsInfo_settings__);
return offset;
}
static int
lsarpc_dissect_element_lsa_SidArray_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_SidArray_sids__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_SidArray_sids__);
return offset;
}
static int
lsarpc_dissect_element_lsa_DomainList_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_DomainList_domains__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_DomainList_domains__);
return offset;
}
static int
lsarpc_dissect_element_lsa_TransSidArray_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_TransSidArray_sids__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_TransSidArray_sids__);
return offset;
}
static int
lsarpc_dissect_element_lsa_RefDomainList_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_RefDomainList_domains__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_RefDomainList_domains__);
return offset;
}
static int
lsarpc_dissect_element_lsa_TransNameArray_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_TransNameArray_names__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_TransNameArray_names__);
return offset;
}
}
static int
-lsarpc_dissect_element_lsa_PrivilegeSet_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+lsarpc_dissect_element_lsa_PrivilegeSet_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, struct ndr_generic_array *nga)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_PrivilegeSet_set_);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, nga, lsarpc_dissect_element_lsa_PrivilegeSet_set_);
return offset;
}
return offset;
}
+static int
+lsarpc_dissect_conformant_lsa_PrivilegeSet_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, struct ndr_generic_array *nga)
+{
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, nga);
+
+ return offset;
+}
+
int
lsarpc_dissect_struct_lsa_PrivilegeSet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
+ struct ndr_generic_array nga_set = { .is_conformant = FALSE, };
proto_item *item = NULL;
proto_tree *tree = NULL;
int old_offset;
+ offset = lsarpc_dissect_conformant_lsa_PrivilegeSet_set(tvb, offset, pinfo, parent_tree, di, drep, &nga_set);
+
ALIGN_TO_4_BYTES;
old_offset = offset;
offset = lsarpc_dissect_element_lsa_PrivilegeSet_unknown(tvb, offset, pinfo, tree, di, drep);
- offset = lsarpc_dissect_element_lsa_PrivilegeSet_set(tvb, offset, pinfo, tree, di, drep);
+ offset = lsarpc_dissect_element_lsa_PrivilegeSet_set(tvb, offset, pinfo, tree, di, drep, &nga_set);
proto_item_set_len(item, offset-old_offset);
- if (di->call_data->flags & DCERPC_IS_NDR64) {
- ALIGN_TO_4_BYTES;
- }
-
return offset;
}
static int
lsarpc_dissect_element_lsa_DATA_BUF_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_DATA_BUF_data__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_DATA_BUF_data__);
return offset;
}
static int
lsarpc_dissect_element_lsa_DATA_BUF2_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_DATA_BUF2_data__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_DATA_BUF2_data__);
return offset;
}
static int
lsarpc_dissect_element_lsa_TrustDomainInfoControllers_netbios_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_TrustDomainInfoControllers_netbios_names__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_TrustDomainInfoControllers_netbios_names__);
return offset;
}
static int
lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data__);
return offset;
}
static int
lsarpc_dissect_element_lsa_RightAttribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- char *data;
+ char *data = NULL;
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
- offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_lsarpc_lsa_RightAttribute_name, FALSE, &data);
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_lsarpc_lsa_RightAttribute_name, FALSE, &nga, &data);
proto_item_append_text(tree, ": %s", data);
return offset;
static int
lsarpc_dissect_element_lsa_RightSet_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_RightSet_names__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_RightSet_names__);
return offset;
}
static int
lsarpc_dissect_element_lsa_DomainListEx_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_DomainListEx_domains__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_DomainListEx_domains__);
return offset;
}
static int
lsarpc_dissect_element_lsa_TransNameArray2_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_TransNameArray2_names__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_TransNameArray2_names__);
return offset;
}
static int
lsarpc_dissect_element_lsa_TransSidArray2_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_TransSidArray2_sids__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_TransSidArray2_sids__);
return offset;
}
static int
lsarpc_dissect_element_lsa_TransSidArray3_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_TransSidArray3_sids__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_TransSidArray3_sids__);
return offset;
}
static int
lsarpc_dissect_element_lsa_ForestTrustBinaryData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_ForestTrustBinaryData_data__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_ForestTrustBinaryData_data__);
return offset;
}
static int
lsarpc_dissect_element_lsa_ForestTrustInformation_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_ForestTrustInformation_entries__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_ForestTrustInformation_entries__);
return offset;
}
static int
lsarpc_dissect_element_lsa_ForestTrustCollisionInfo_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_ForestTrustCollisionInfo_entries__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_ForestTrustCollisionInfo_entries__);
return offset;
}
static int
lsarpc_dissect_element_lsa_ForestTrustInformation2_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, lsarpc_dissect_element_lsa_ForestTrustInformation2_entries__);
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_bytes(tvb, offset, pinfo, tree, di, drep, &nga, lsarpc_dissect_element_lsa_ForestTrustInformation2_entries__);
return offset;
}
static int
lsarpc_dissect_element_lsa_OpenPolicy2_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- char *data;
+ char *data = NULL;
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
- offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_lsarpc_lsa_OpenPolicy2_system_name, FALSE, &data);
+ offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_lsarpc_lsa_OpenPolicy2_system_name, FALSE, &nga, &data);
proto_item_append_text(tree, ": %s", data);
return offset;
static int
lsarpc_dissect_element_lsa_GetUserName_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- char *data;
+ char *data = NULL;
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
- offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_lsarpc_lsa_GetUserName_system_name, FALSE, &data);
+ offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_lsarpc_lsa_GetUserName_system_name, FALSE, &nga, &data);
proto_item_append_text(tree, ": %s", data);
return offset;
static int
lsarpc_dissect_element_lsa_OpenPolicy3_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
- char *data;
+ char *data = NULL;
+ struct ndr_generic_array nga = { .is_conformant = FALSE, };
+
+ offset = dissect_ndr_conformant_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
+
+ offset = dissect_ndr_varying_array_hdr(tvb, offset, pinfo, tree, di, drep, &nga);
- offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_lsarpc_lsa_OpenPolicy3_system_name, FALSE, &data);
+ offset = dissect_ndr_generic_array_string(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_lsarpc_lsa_OpenPolicy3_system_name, FALSE, &nga, &data);
proto_item_append_text(tree, ": %s", data);
return offset;