epan/dissectors/pidl/drsuapi/drsuapi.cnf init/free_ndr_pointer_list
authorStefan Metzmacher <metze@samba.org>
Mon, 21 Mar 2022 12:53:35 +0000 (13:53 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 25 Mar 2022 14:28:46 +0000 (15:28 +0100)
epan/dissectors/pidl/drsuapi/drsuapi.cnf

index 745a19679ad24773af5450e4a8c830b46652e33b..47d893008dad6b6ec0d22b1a781277dfe0bd2494 100644 (file)
@@ -469,15 +469,18 @@ drsuapi_dissect_package_PrimaryKerberosBlob(tvbuff_t *tvb _U_, packet_info *pinf
        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_);
@@ -781,15 +784,18 @@ drsuapi_dissect_supplementalCredentials(tvbuff_t *tvb _U_, packet_info *pinfo _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