guint8 drep[4] = { 0x10, 0x00, 0x00, 0x00}; /* fake DREP struct */
static dcerpc_info di = {0, }; /* fake dcerpc_info struct */
static dcerpc_call_value call_data = { 0, };
+ int offset;
/* fake whatever state the dcerpc runtime support needs */
di.conformant_run=0;
/* we need di->call_data->flags.NDR64 == 0 */
di.call_data=&call_data;
- //init_ndr_pointer_list(&di);
+ init_ndr_pointer_list(&di);
di.ptr_stack = parent_di->ptr_stack;
- return drsuapi_dissect_struct_package_PrimaryKerberosBlob(tvb, 0, pinfo, parent_tree, &di, drep,
+ offset = drsuapi_dissect_struct_package_PrimaryKerberosBlob(tvb, 0, pinfo, parent_tree, &di, drep,
hf_drsuapi_pkb_PrimaryKerberosBlob, 0);
+ free_ndr_pointer_list(&di);
+ return offset;
}
typedef int (*package_dissector_fn_t)(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* parent_di _U_);
guint8 drep[4] = { 0x10, 0x00, 0x00, 0x00}; /* fake DREP struct */
static dcerpc_info di = {0, }; /* fake dcerpc_info struct */
static dcerpc_call_value call_data = { 0, };
+ int offset;
/* fake whatever state the dcerpc runtime support needs */
di.conformant_run=0;
/* we need di->call_data->flags.NDR64 == 0 */
di.call_data=&call_data;
- //init_ndr_pointer_list(&di);
+ init_ndr_pointer_list(&di);
di.ptr_stack = parent_di->ptr_stack;
- return drsuapi_dissect_struct_supplementalCredentialsBlob(tvb, 0, pinfo, parent_tree, &di, drep,
+ offset = drsuapi_dissect_struct_supplementalCredentialsBlob(tvb, 0, pinfo, parent_tree, &di, drep,
hf_drsuapi_sch_supplementalCredentials, 0);
+ free_ndr_pointer_list(&di);
+ return offset;
}
static int