drsuapi_dissect_element_DsGetNCChangesCtr6TS_ctr6 dissect_krb5_PAC_NDRHEADERBLOB
authorStefan Metzmacher <metze@samba.org>
Tue, 22 Mar 2022 10:53:50 +0000 (11:53 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 3 Feb 2023 09:29:19 +0000 (10:29 +0100)
epan/dissectors/pidl/drsuapi/drsuapi.cnf

index 9e909150f78f075c221c94e7fe96e79cf9d53967..a63c1f91b0291872f5ff506359cad5d0a847d2c0 100644 (file)
@@ -64,7 +64,6 @@ MANUAL drsuapi_dissect_struct_supplementalCredentialsBlob
 MANUAL drsuapi_dissect_element_DsGetNCChangesCtr1TS_ctr1
 NOEMIT drsuapi_dissect_element_DsGetNCChangesCtr1TS_ctr1_
 MANUAL drsuapi_dissect_element_DsGetNCChangesCtr6TS_ctr6
-NOEMIT drsuapi_dissect_element_DsGetNCChangesCtr6TS_ctr6_
 MANUAL drsuapi_dissect_element_DsGetNCChangesCtr9TS_ctr9
 NOEMIT drsuapi_dissect_element_DsGetNCChangesCtr9TS_ctr9_
 
@@ -1347,21 +1346,21 @@ drsuapi_dissect_element_DsGetNCChangesCtr1TS_ctr1(tvbuff_t *tvb _U_, int offset
 static int
 drsuapi_dissect_element_DsGetNCChangesCtr6TS_ctr6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
 {
-/*
+       guint8 ddrep[4] = { 0x10, 0x00, 0x00, 0x00};
+       dcerpc_call_value call_data = { .flags = 0, };
+       dcerpc_info ddi = { .call_data = &call_data, };
        guint64 size;
-       int conformant = di->conformant_run;
-       tvbuff_t *subtvb;
+       tvbuff_t *subtvb = NULL;
+       int orig_offset = offset;
+
+       offset = dissect_krb5_PAC_NDRHEADERBLOB(tree, tvb, offset, &ddrep[0]);
+       size = tvb_get_letoh64(tvb, orig_offset+8);
+       subtvb = tvb_new_subset_length_caplen(tvb, offset, (gint)size, (gint)size);
+       offset += (int)size;
+       init_ndr_pointer_list(&ddi);
+       drsuapi_dissect_element_DsGetNCChangesCtr6TS_ctr6_(subtvb, 0, pinfo, tree, &ddi, ddrep);
+       free_ndr_pointer_list(&ddi);
 
-       if (!conformant) {
-               guint32 saved_flags = di->call_data->flags;
-               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6TS_ctr6_, &size);
-               di->call_data->flags &= ~DCERPC_IS_NDR64;
-               subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1);
-               drsuapi_dissect_element_DsGetNCChangesCtr6TS_ctr6_(subtvb, 0, pinfo, tree, di, drep);
-               offset += (int)size;
-               di->call_data->flags = saved_flags;
-       }
-*/
        return offset;
 }