git add -f bin/default/librpc/gen_ndr/packet-dcerpc-*
authorStefan Metzmacher <metze@samba.org>
Mon, 4 Nov 2013 10:49:09 +0000 (11:49 +0100)
committerStefan Metzmacher <metze@samba.org>
Mon, 4 Nov 2013 11:19:27 +0000 (12:19 +0100)
29 files changed:
bin/default/librpc/gen_ndr/packet-dcerpc-backupkey.c
bin/default/librpc/gen_ndr/packet-dcerpc-dcerpc.c
bin/default/librpc/gen_ndr/packet-dcerpc-dfsblobs.c
bin/default/librpc/gen_ndr/packet-dcerpc-dnsserver.c
bin/default/librpc/gen_ndr/packet-dcerpc-drsblobs.c
bin/default/librpc/gen_ndr/packet-dcerpc-drsuapi.c
bin/default/librpc/gen_ndr/packet-dcerpc-echo.c
bin/default/librpc/gen_ndr/packet-dcerpc-efs.c
bin/default/librpc/gen_ndr/packet-dcerpc-eventlog.c
bin/default/librpc/gen_ndr/packet-dcerpc-eventlog6.c
bin/default/librpc/gen_ndr/packet-dcerpc-frsrpc.c
bin/default/librpc/gen_ndr/packet-dcerpc-frstrans.c
bin/default/librpc/gen_ndr/packet-dcerpc-frstransblobs.c
bin/default/librpc/gen_ndr/packet-dcerpc-fsrvp.c
bin/default/librpc/gen_ndr/packet-dcerpc-lsa.c
bin/default/librpc/gen_ndr/packet-dcerpc-misc.c
bin/default/librpc/gen_ndr/packet-dcerpc-named_pipe_auth.c
bin/default/librpc/gen_ndr/packet-dcerpc-nbt.c
bin/default/librpc/gen_ndr/packet-dcerpc-netlogon.c
bin/default/librpc/gen_ndr/packet-dcerpc-ntlmssp.c
bin/default/librpc/gen_ndr/packet-dcerpc-ntsvcs.c
bin/default/librpc/gen_ndr/packet-dcerpc-samr.c
bin/default/librpc/gen_ndr/packet-dcerpc-schannel.c
bin/default/librpc/gen_ndr/packet-dcerpc-spoolss.c
bin/default/librpc/gen_ndr/packet-dcerpc-srvsvc.c
bin/default/librpc/gen_ndr/packet-dcerpc-svcctl.c
bin/default/librpc/gen_ndr/packet-dcerpc-winreg.c
bin/default/librpc/gen_ndr/packet-dcerpc-wkssvc.c
bin/default/librpc/gen_ndr/packet-dcerpc-xattr.c

index 4cf62d04d0b1e08ddfde6e66e85f180770d2ba7e..d2aed6f2ae642992b88c4ec61fd5418ecb40226a 100644 (file)
@@ -146,7 +146,7 @@ static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_cert(tvbuff_t *t
 static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_cert_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_dc_serverwrap_key_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_dc_serverwrap_key_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int backupkey_dissect_element_bkrp_dc_serverwrap_key_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_dc_serverwrap_key_key_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_client_side_wrapped_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_client_side_wrapped_encrypted_secret_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_client_side_wrapped_access_check_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -163,7 +163,7 @@ static int backupkey_dissect_element_bkrp_encrypted_secret_v2_magic(tvbuff_t *tv
 static int backupkey_dissect_element_bkrp_encrypted_secret_v2_secret(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_encrypted_secret_v2_secret_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_encrypted_secret_v2_payload_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int backupkey_dissect_element_bkrp_encrypted_secret_v2_payload_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_encrypted_secret_v2_payload_key_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_encrypted_secret_v3_secret_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_encrypted_secret_v3_magic1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_encrypted_secret_v3_magic2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -171,21 +171,21 @@ static int backupkey_dissect_element_bkrp_encrypted_secret_v3_magic3(tvbuff_t *t
 static int backupkey_dissect_element_bkrp_encrypted_secret_v3_secret(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_encrypted_secret_v3_secret_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_encrypted_secret_v3_payload_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int backupkey_dissect_element_bkrp_encrypted_secret_v3_payload_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_encrypted_secret_v3_payload_key_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_access_check_v2_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_access_check_v2_nonce_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_access_check_v2_nonce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_access_check_v2_nonce_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_access_check_v2_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_access_check_v2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int backupkey_dissect_element_bkrp_access_check_v2_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_access_check_v2_hash_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_access_check_v3_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_access_check_v3_nonce_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_access_check_v3_nonce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_access_check_v3_nonce_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_access_check_v3_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_access_check_v3_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int backupkey_dissect_element_bkrp_access_check_v3_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_access_check_v3_hash_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 const value_string backupkey_bkrp_guid_to_integer_vals[] = {
        { BACKUPKEY_INVALID_GUID_INTEGER, "BACKUPKEY_INVALID_GUID_INTEGER" },
        { BACKUPKEY_RESTORE_GUID_INTEGER, "BACKUPKEY_RESTORE_GUID_INTEGER" },
@@ -198,12 +198,12 @@ static int backupkey_dissect_element_bkrp_BackupKey_guidActionAgent(tvbuff_t *tv
 static int backupkey_dissect_element_bkrp_BackupKey_guidActionAgent_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_BackupKey_data_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_BackupKey_data_in_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int backupkey_dissect_element_bkrp_BackupKey_data_in__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_BackupKey_data_in__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_BackupKey_data_in_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_BackupKey_data_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_BackupKey_data_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_BackupKey_data_out__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int backupkey_dissect_element_bkrp_BackupKey_data_out___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_BackupKey_data_out___(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_BackupKey_data_out_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_BackupKey_data_out_len_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int backupkey_dissect_element_bkrp_BackupKey_param(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -622,17 +622,19 @@ backupkey_dissect_element_bkrp_dc_serverwrap_key_magic(tvbuff_t *tvb _U_, int of
 static int
 backupkey_dissect_element_bkrp_dc_serverwrap_key_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 256; i++)
-               offset = backupkey_dissect_element_bkrp_dc_serverwrap_key_key_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = backupkey_dissect_element_bkrp_dc_serverwrap_key_key_(tvb, offset, 256, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-backupkey_dissect_element_bkrp_dc_serverwrap_key_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+backupkey_dissect_element_bkrp_dc_serverwrap_key_key_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_dc_serverwrap_key_key, 0);
+       proto_tree_add_bytes(tree, hf_backupkey_bkrp_dc_serverwrap_key_key, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -898,17 +900,19 @@ backupkey_dissect_element_bkrp_encrypted_secret_v2_secret_(tvbuff_t *tvb _U_, in
 static int
 backupkey_dissect_element_bkrp_encrypted_secret_v2_payload_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 32; i++)
-               offset = backupkey_dissect_element_bkrp_encrypted_secret_v2_payload_key_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = backupkey_dissect_element_bkrp_encrypted_secret_v2_payload_key_(tvb, offset, 32, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-backupkey_dissect_element_bkrp_encrypted_secret_v2_payload_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+backupkey_dissect_element_bkrp_encrypted_secret_v2_payload_key_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_encrypted_secret_v2_payload_key, 0);
+       proto_tree_add_bytes(tree, hf_backupkey_bkrp_encrypted_secret_v2_payload_key, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1009,17 +1013,19 @@ backupkey_dissect_element_bkrp_encrypted_secret_v3_secret_(tvbuff_t *tvb _U_, in
 static int
 backupkey_dissect_element_bkrp_encrypted_secret_v3_payload_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 48; i++)
-               offset = backupkey_dissect_element_bkrp_encrypted_secret_v3_payload_key_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = backupkey_dissect_element_bkrp_encrypted_secret_v3_payload_key_(tvb, offset, 48, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-backupkey_dissect_element_bkrp_encrypted_secret_v3_payload_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+backupkey_dissect_element_bkrp_encrypted_secret_v3_payload_key_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_encrypted_secret_v3_payload_key, 0);
+       proto_tree_add_bytes(tree, hf_backupkey_bkrp_encrypted_secret_v3_payload_key, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1115,17 +1121,19 @@ backupkey_dissect_element_bkrp_access_check_v2_sid(tvbuff_t *tvb _U_, int offset
 static int
 backupkey_dissect_element_bkrp_access_check_v2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 20; i++)
-               offset = backupkey_dissect_element_bkrp_access_check_v2_hash_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = backupkey_dissect_element_bkrp_access_check_v2_hash_(tvb, offset, 20, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-backupkey_dissect_element_bkrp_access_check_v2_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+backupkey_dissect_element_bkrp_access_check_v2_hash_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_access_check_v2_hash, 0);
+       proto_tree_add_bytes(tree, hf_backupkey_bkrp_access_check_v2_hash, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1219,17 +1227,19 @@ backupkey_dissect_element_bkrp_access_check_v3_sid(tvbuff_t *tvb _U_, int offset
 static int
 backupkey_dissect_element_bkrp_access_check_v3_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 64; i++)
-               offset = backupkey_dissect_element_bkrp_access_check_v3_hash_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = backupkey_dissect_element_bkrp_access_check_v3_hash_(tvb, offset, 64, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-backupkey_dissect_element_bkrp_access_check_v3_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+backupkey_dissect_element_bkrp_access_check_v3_hash_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_access_check_v3_hash, 0);
+       proto_tree_add_bytes(tree, hf_backupkey_bkrp_access_check_v3_hash, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1370,15 +1380,15 @@ backupkey_dissect_element_bkrp_BackupKey_data_in(tvbuff_t *tvb _U_, int offset _
 static int
 backupkey_dissect_element_bkrp_BackupKey_data_in_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, backupkey_dissect_element_bkrp_BackupKey_data_in__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, backupkey_dissect_element_bkrp_BackupKey_data_in__);
 
        return offset;
 }
 
 static int
-backupkey_dissect_element_bkrp_BackupKey_data_in__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+backupkey_dissect_element_bkrp_BackupKey_data_in__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_BackupKey_data_in, 0);
+       proto_tree_add_bytes(tree, hf_backupkey_bkrp_BackupKey_data_in, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1410,15 +1420,15 @@ backupkey_dissect_element_bkrp_BackupKey_data_out_(tvbuff_t *tvb _U_, int offset
 static int
 backupkey_dissect_element_bkrp_BackupKey_data_out__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, backupkey_dissect_element_bkrp_BackupKey_data_out___);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, backupkey_dissect_element_bkrp_BackupKey_data_out___);
 
        return offset;
 }
 
 static int
-backupkey_dissect_element_bkrp_BackupKey_data_out___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+backupkey_dissect_element_bkrp_BackupKey_data_out___(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_BackupKey_data_out, 0);
+       proto_tree_add_bytes(tree, hf_backupkey_bkrp_BackupKey_data_out, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1510,7 +1520,7 @@ void proto_register_dcerpc_backupkey(void)
        { &hf_backupkey_bkrp_exported_RSA_key_pair_prime2,
          { "Prime2", "backupkey.bkrp_exported_RSA_key_pair.prime2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_backupkey_bkrp_encrypted_secret_v3_payload_key,
-         { "Payload Key", "backupkey.bkrp_encrypted_secret_v3.payload_key", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Payload Key", "backupkey.bkrp_encrypted_secret_v3.payload_key", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_backupkey_bkrp_client_side_wrapped_guid,
          { "Guid", "backupkey.bkrp_client_side_wrapped.guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_backupkey_bkrp_exported_RSA_key_pair_modulus_,
@@ -1578,7 +1588,7 @@ void proto_register_dcerpc_backupkey(void)
        { &hf_backupkey_werror,
          { "Windows Error", "backupkey.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
        { &hf_backupkey_bkrp_dc_serverwrap_key_key,
-         { "Key", "backupkey.bkrp_dc_serverwrap_key.key", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Key", "backupkey.bkrp_dc_serverwrap_key.key", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_backupkey_bkrp_encrypted_secret_v2_secret,
          { "Secret", "backupkey.bkrp_encrypted_secret_v2.secret", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_backupkey_bkrp_encrypted_secret_v2_secret_len,
@@ -1586,7 +1596,7 @@ void proto_register_dcerpc_backupkey(void)
        { &hf_backupkey_bkrp_access_check_v3_nonce_len,
          { "Nonce Len", "backupkey.bkrp_access_check_v3.nonce_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_backupkey_bkrp_access_check_v3_hash,
-         { "Hash", "backupkey.bkrp_access_check_v3.hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Hash", "backupkey.bkrp_access_check_v3.hash", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_backupkey_opnum,
          { "Operation", "backupkey.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_backupkey_bkrp_exported_RSA_key_pair_magic3,
@@ -1594,7 +1604,7 @@ void proto_register_dcerpc_backupkey(void)
        { &hf_backupkey_bkrp_exported_RSA_key_pair_private_exponent,
          { "Private Exponent", "backupkey.bkrp_exported_RSA_key_pair.private_exponent", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_backupkey_bkrp_BackupKey_data_out,
-         { "Data Out", "backupkey.bkrp_BackupKey.data_out", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data Out", "backupkey.bkrp_BackupKey.data_out", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_backupkey_bkrp_exported_RSA_key_pair_magic4,
          { "Magic4", "backupkey.bkrp_exported_RSA_key_pair.magic4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_backupkey_bkrp_encrypted_secret_v3_magic2,
@@ -1606,7 +1616,7 @@ void proto_register_dcerpc_backupkey(void)
        { &hf_backupkey_bkrp_BackupKey_data_in_len,
          { "Data In Len", "backupkey.bkrp_BackupKey.data_in_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_backupkey_bkrp_BackupKey_data_in,
-         { "Data In", "backupkey.bkrp_BackupKey.data_in", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data In", "backupkey.bkrp_BackupKey.data_in", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_backupkey_bkrp_access_check_v3_nonce,
          { "Nonce", "backupkey.bkrp_access_check_v3.nonce", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_backupkey_bkrp_exported_RSA_key_pair_exponent1,
@@ -1614,7 +1624,7 @@ void proto_register_dcerpc_backupkey(void)
        { &hf_backupkey_bkrp_access_check_v2_nonce_len,
          { "Nonce Len", "backupkey.bkrp_access_check_v2.nonce_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_backupkey_bkrp_access_check_v2_hash,
-         { "Hash", "backupkey.bkrp_access_check_v2.hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Hash", "backupkey.bkrp_access_check_v2.hash", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_backupkey_bkrp_exported_RSA_key_pair_cert,
          { "Cert", "backupkey.bkrp_exported_RSA_key_pair.cert", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_backupkey_bkrp_exported_RSA_key_pair_exponent2_,
@@ -1624,7 +1634,7 @@ void proto_register_dcerpc_backupkey(void)
        { &hf_backupkey_bkrp_encrypted_secret_v2_magic,
          { "Magic", "backupkey.bkrp_encrypted_secret_v2.magic", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_backupkey_bkrp_encrypted_secret_v2_payload_key,
-         { "Payload Key", "backupkey.bkrp_encrypted_secret_v2.payload_key", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Payload Key", "backupkey.bkrp_encrypted_secret_v2.payload_key", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_backupkey_bkrp_encrypted_secret_v3_secret,
          { "Secret", "backupkey.bkrp_encrypted_secret_v3.secret", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_backupkey_bkrp_exported_RSA_key_pair_prime1_,
index 219971be2e7003bed7ed3df946a73725d49fe091..d8e37532347baa21dcc4fc23ab1192803021920e 100644 (file)
@@ -424,7 +424,7 @@ static int dcerpc_dissect_element_ClientAddressType_ClientAddressIPV6(tvbuff_t *
 static int dcerpc_dissect_element_ClientAddress_AddressType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *AddressType);
 static int dcerpc_dissect_element_ClientAddress_ClientAddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *AddressType);
 static int dcerpc_dissect_element_ClientAddress_Padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int dcerpc_dissect_element_ClientAddress_Padding_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ClientAddress_Padding_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 const value_string dcerpc_ForwardDestination_vals[] = {
        { FDClient, "FDClient" },
        { FDInProxy, "FDInProxy" },
@@ -552,7 +552,7 @@ static int dcerpc_dissect_element_ncacn_packet_rpc_vers_minor(tvbuff_t *tvb _U_,
 static int dcerpc_dissect_element_ncacn_packet_ptype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *ptype);
 static int dcerpc_dissect_element_ncacn_packet_pfc_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dcerpc_dissect_element_ncacn_packet_drep(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int dcerpc_dissect_element_ncacn_packet_drep_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncacn_packet_drep_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dcerpc_dissect_element_ncacn_packet_frag_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dcerpc_dissect_element_ncacn_packet_auth_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dcerpc_dissect_element_ncacn_packet_call_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -562,7 +562,7 @@ static int dcerpc_dissect_element_ncadg_packet_ptype(tvbuff_t *tvb _U_, int offs
 static int dcerpc_dissect_element_ncadg_packet_pfc_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dcerpc_dissect_element_ncadg_packet_ncadg_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dcerpc_dissect_element_ncadg_packet_drep(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int dcerpc_dissect_element_ncadg_packet_drep_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncadg_packet_drep_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dcerpc_dissect_element_ncadg_packet_serial_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dcerpc_dissect_element_ncadg_packet_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dcerpc_dissect_element_ncadg_packet_iface(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -2349,17 +2349,19 @@ dcerpc_dissect_element_ClientAddress_ClientAddress(tvbuff_t *tvb _U_, int offset
 static int
 dcerpc_dissect_element_ClientAddress_Padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 12; i++)
-               offset = dcerpc_dissect_element_ClientAddress_Padding_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = dcerpc_dissect_element_ClientAddress_Padding_(tvb, offset, 12, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-dcerpc_dissect_element_ClientAddress_Padding_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+dcerpc_dissect_element_ClientAddress_Padding_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_ClientAddress_Padding, 0);
+       proto_tree_add_bytes(tree, hf_dcerpc_ClientAddress_Padding, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3932,17 +3934,19 @@ dcerpc_dissect_element_ncacn_packet_pfc_flags(tvbuff_t *tvb _U_, int offset _U_,
 static int
 dcerpc_dissect_element_ncacn_packet_drep(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 4; i++)
-               offset = dcerpc_dissect_element_ncacn_packet_drep_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = dcerpc_dissect_element_ncacn_packet_drep_(tvb, offset, 4, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-dcerpc_dissect_element_ncacn_packet_drep_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+dcerpc_dissect_element_ncacn_packet_drep_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncacn_packet_drep, 0);
+       proto_tree_add_bytes(tree, hf_dcerpc_ncacn_packet_drep, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -4085,17 +4089,19 @@ dcerpc_dissect_element_ncadg_packet_ncadg_flags(tvbuff_t *tvb _U_, int offset _U
 static int
 dcerpc_dissect_element_ncadg_packet_drep(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 3; i++)
-               offset = dcerpc_dissect_element_ncadg_packet_drep_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = dcerpc_dissect_element_ncadg_packet_drep_(tvb, offset, 3, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-dcerpc_dissect_element_ncadg_packet_drep_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+dcerpc_dissect_element_ncadg_packet_drep_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_drep, 0);
+       proto_tree_add_bytes(tree, hf_dcerpc_ncadg_packet_drep, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -4432,7 +4438,7 @@ void proto_register_dcerpc_dcerpc(void)
        { &hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_EOF,
          { "Rts Flag Eof", "dcerpc.dcerpc_rts_flags.RTS_FLAG_EOF", FT_BOOLEAN, 16, TFS(&dcerpc_rts_flags_RTS_FLAG_EOF_tfs), ( 0x0020 ), NULL, HFILL }},
        { &hf_dcerpc_ClientAddress_Padding,
-         { "Padding", "dcerpc.ClientAddress.Padding", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Padding", "dcerpc.ClientAddress.Padding", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_dcerpc_dcerpc_bind_assoc_group_id,
          { "Assoc Group Id", "dcerpc.dcerpc_bind.assoc_group_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_dcerpc_dcerpc_fault_cancel_count,
@@ -4500,7 +4506,7 @@ void proto_register_dcerpc_dcerpc(void)
        { &hf_dcerpc_dcerpc_payload_rts,
          { "Rts", "dcerpc.dcerpc_payload.rts", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_dcerpc_ncacn_packet_drep,
-         { "Drep", "dcerpc.ncacn_packet.drep", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Drep", "dcerpc.ncacn_packet.drep", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_dcerpc_dcerpc_payload_ack,
          { "Ack", "dcerpc.dcerpc_payload.ack", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_dcerpc_dcerpc_bind_nak_reject_reason,
@@ -4604,7 +4610,7 @@ void proto_register_dcerpc_dcerpc(void)
        { &hf_dcerpc_dcerpc_response_context_id,
          { "Context Id", "dcerpc.dcerpc_response.context_id", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_dcerpc_ncadg_packet_drep,
-         { "Drep", "dcerpc.ncadg_packet.drep", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Drep", "dcerpc.ncadg_packet.drep", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_dcerpc_ncadg_packet_len,
          { "Len", "dcerpc.ncadg_packet.len", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_dcerpc_dcerpc_rts_cmds_Empty,
index 5be2b572526498816162c2f297094521e7bd6306..2c34f446a05e16938f2edca6d7a5b12cd6e01084 100644 (file)
@@ -155,7 +155,7 @@ static int dfsblobs_dissect_element_dfs_domain_referral_expanded_names__(tvbuff_
 static int dfsblobs_dissect_element_dfs_referral_r1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dfsblobs_dissect_element_dfs_referral_r2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dfsblobs_dissect_element_dfs_padding_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int dfsblobs_dissect_element_dfs_padding_value_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_padding_value_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dfsblobs_dissect_element_dfs_referral_v3_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *size);
 static int dfsblobs_dissect_element_dfs_referral_v3_server_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dfsblobs_dissect_element_dfs_referral_v3_entry_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *entry_flags);
@@ -759,17 +759,19 @@ dfsblobs_dissect_dfs_referral(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi
 static int
 dfsblobs_dissect_element_dfs_padding_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 16; i++)
-               offset = dfsblobs_dissect_element_dfs_padding_value_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = dfsblobs_dissect_element_dfs_padding_value_(tvb, offset, 16, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-dfsblobs_dissect_element_dfs_padding_value_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+dfsblobs_dissect_element_dfs_padding_value_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_padding_value, 0);
+       proto_tree_add_bytes(tree, hf_dfsblobs_dfs_padding_value, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1300,7 +1302,7 @@ void proto_register_dcerpc_dfsblobs(void)
        { &hf_dfsblobs_dfs_referral_v1_size,
          { "Size", "dfsblobs.dfs_referral_v1.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_dfsblobs_dfs_padding_value,
-         { "Value", "dfsblobs.dfs_padding.value", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Value", "dfsblobs.dfs_padding.value", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_dfsblobs_dfs_referral_resp_header_flags,
          { "Header Flags", "dfsblobs.dfs_referral_resp.header_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
        { &hf_dfsblobs_dfs_normal_referral_DFS_path,
index e2963c4547e554f5aa86f588569e3eb2a0e3ae0e..5c6a92cccdb0732c2f5e944b98a699bd1f8199a4 100644 (file)
@@ -845,7 +845,7 @@ static int dnsserver_dissect_element_IP4_ARRAY_AddrCount(tvbuff_t *tvb _U_, int
 static int dnsserver_dissect_element_IP4_ARRAY_AddrArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dnsserver_dissect_element_IP4_ARRAY_AddrArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dnsserver_dissect_element_DNS_ADDR_MaxSa(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int dnsserver_dissect_element_DNS_ADDR_MaxSa_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_ADDR_MaxSa_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dnsserver_dissect_element_DNS_ADDR_DnsAddrUserDword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dnsserver_dissect_element_DNS_ADDR_DnsAddrUserDword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dnsserver_dissect_element_DNS_ADDR_ARRAY_MaxCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -935,7 +935,7 @@ static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fStrictFileParsing(
 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fLooseWildcarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fDefaultAgingState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fReserveArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fReserveArray_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dnsserver_dissect_element_DNS_EXTENSION_extension(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dnsserver_dissect_element_DNS_EXTENSION_extension_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1005,7 +1005,7 @@ static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fStrictFileParsi
 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fLooseWildcarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fDefaultAgingState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fReserveArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fReserveArray_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1074,7 +1074,7 @@ static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fStrictFilePar
 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fLooseWildcarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fDefaultAgingState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fReserveArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fReserveArray_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static const true_false_string DNS_RPC_DP_FLAGS_DNS_DP_AUTOCREATED_tfs = {
    "DNS_DP_AUTOCREATED is SET",
    "DNS_DP_AUTOCREATED is NOT SET",
@@ -1590,7 +1590,7 @@ static int dnsserver_dissect_element_DNSSRV_STAT_HEADER_fClear(tvbuff_t *tvb _U_
 static int dnsserver_dissect_element_DNSSRV_STAT_HEADER_fReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dnsserver_dissect_element_DNSSRV_STAT_Header(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int dnsserver_dissect_element_DNSSRV_STAT_Buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int dnsserver_dissect_element_DNSSRV_STAT_Buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_STAT_Buffer_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 const value_string dnsserver_DNS_RPC_TYPEID_vals[] = {
        { DNSSRV_TYPEID_NULL, "DNSSRV_TYPEID_NULL" },
        { DNSSRV_TYPEID_DWORD, "DNSSRV_TYPEID_DWORD" },
@@ -3100,17 +3100,19 @@ dnsserver_dissect_struct_IP4_ARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_inf
 static int
 dnsserver_dissect_element_DNS_ADDR_MaxSa(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 32; i++)
-               offset = dnsserver_dissect_element_DNS_ADDR_MaxSa_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = dnsserver_dissect_element_DNS_ADDR_MaxSa_(tvb, offset, 32, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-dnsserver_dissect_element_DNS_ADDR_MaxSa_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+dnsserver_dissect_element_DNS_ADDR_MaxSa_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_ADDR_MaxSa, 0);
+       proto_tree_add_bytes(tree, hf_dnsserver_DNS_ADDR_MaxSa, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3118,9 +3120,11 @@ dnsserver_dissect_element_DNS_ADDR_MaxSa_(tvbuff_t *tvb _U_, int offset _U_, pac
 static int
 dnsserver_dissect_element_DNS_ADDR_DnsAddrUserDword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 8; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = dnsserver_dissect_element_DNS_ADDR_DnsAddrUserDword_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -3836,9 +3840,11 @@ dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwDefaultNoRefreshInterval(tvb
 static int
 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 10; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwReserveArray_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -3958,17 +3964,19 @@ dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fDefaultAgingState(tvbuff_t *t
 static int
 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 15; i++)
-               offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fReserveArray_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fReserveArray_(tvb, offset, 15, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fReserveArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fReserveArray_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fReserveArray, 0);
+       proto_tree_add_bytes(tree, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fReserveArray, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -4455,9 +4463,11 @@ dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszForestDirectoryPartition
 static int
 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pExtensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 6; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pExtensions_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -4633,9 +4643,11 @@ dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDsDsaVersion(tvbuff_t *tv
 static int
 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 4; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwReserveArray_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -4755,17 +4767,19 @@ dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fDefaultAgingState(tvbuff_t
 static int
 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 15; i++)
-               offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fReserveArray_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fReserveArray_(tvb, offset, 15, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fReserveArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fReserveArray_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fReserveArray, 0);
+       proto_tree_add_bytes(tree, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fReserveArray, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -5221,9 +5235,11 @@ dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszForestDirectoryPartiti
 static int
 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pExtensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 6; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pExtensions_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -5407,9 +5423,11 @@ dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fReadOnlyDC(tvbuff_t *tvb
 static int
 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 3; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwReserveArray_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -5529,17 +5547,19 @@ dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fDefaultAgingState(tvbuff
 static int
 dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 15; i++)
-               offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fReserveArray_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fReserveArray_(tvb, offset, 15, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fReserveArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fReserveArray_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fReserveArray, 0);
+       proto_tree_add_bytes(tree, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fReserveArray, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -5959,9 +5979,11 @@ dnsserver_dissect_element_DNS_RPC_DP_INFO_dwState(tvbuff_t *tvb _U_, int offset
 static int
 dnsserver_dissect_element_DNS_RPC_DP_INFO_dwReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 3; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = dnsserver_dissect_element_DNS_RPC_DP_INFO_dwReserved_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -5977,9 +5999,11 @@ dnsserver_dissect_element_DNS_RPC_DP_INFO_dwReserved_(tvbuff_t *tvb _U_, int off
 static int
 dnsserver_dissect_element_DNS_RPC_DP_INFO_pwszReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 3; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = dnsserver_dissect_element_DNS_RPC_DP_INFO_pwszReserved_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -9679,9 +9703,11 @@ dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDpFqdn_(tvbuff_t *t
 static int
 dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 32; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwReserved_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -10001,9 +10027,11 @@ dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDpFqdn_(tvbuff_t
 static int
 dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 32; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwReserved_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -10235,9 +10263,11 @@ dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszQueryString_(tvbuff_t *tv
 static int
 dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 6; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszReserved_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -10931,17 +10961,19 @@ dnsserver_dissect_element_DNSSRV_STAT_Header(tvbuff_t *tvb _U_, int offset _U_,
 static int
 dnsserver_dissect_element_DNSSRV_STAT_Buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 1; i++)
-               offset = dnsserver_dissect_element_DNSSRV_STAT_Buffer_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = dnsserver_dissect_element_DNSSRV_STAT_Buffer_(tvb, offset, 1, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-dnsserver_dissect_element_DNSSRV_STAT_Buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+dnsserver_dissect_element_DNSSRV_STAT_Buffer_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNSSRV_STAT_Buffer, 0);
+       proto_tree_add_bytes(tree, hf_dnsserver_DNSSRV_STAT_Buffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -13831,7 +13863,7 @@ void proto_register_dcerpc_dnsserver(void)
        { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwReserved5,
          { "Dwreserved5", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.dwReserved5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fReserveArray,
-         { "Freservearray", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.fReserveArray", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Freservearray", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.fReserveArray", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_dnsserver_DnssrvQuery_ppData,
          { "Ppdata", "dnsserver.DnssrvQuery.ppData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_dnsserver_DNS_RPC_ZONE_CHANGE_DP_pszDestPartition,
@@ -13849,7 +13881,7 @@ void proto_register_dcerpc_dnsserver(void)
        { &hf_dnsserver_DNSSRV_RPC_UNION_IpValidate,
          { "Ipvalidate", "dnsserver.DNSSRV_RPC_UNION.IpValidate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fReserveArray,
-         { "Freservearray", "dnsserver.DNS_RPC_SERVER_INFO_W2K.fReserveArray", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Freservearray", "dnsserver.DNS_RPC_SERVER_INFO_W2K.fReserveArray", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_dnsserver_DNSSRV_RPC_UNION_DirectoryPartitionEnum,
          { "Directorypartitionenum", "dnsserver.DNSSRV_RPC_UNION.DirectoryPartitionEnum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwForwardTimeout,
@@ -13995,13 +14027,13 @@ void proto_register_dcerpc_dnsserver(void)
        { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwRecursionRetry,
          { "Dwrecursionretry", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwRecursionRetry", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_dnsserver_DNSSRV_STAT_Buffer,
-         { "Buffer", "dnsserver.DNSSRV_STAT.Buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Buffer", "dnsserver.DNSSRV_STAT.Buffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved6,
          { "Pvreserved6", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.pvReserved6", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_dnsserver_DnssrvUpdateRecord2_pDeleteRecord,
          { "Pdeleterecord", "dnsserver.DnssrvUpdateRecord2.pDeleteRecord", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_dnsserver_DNS_ADDR_MaxSa,
-         { "Maxsa", "dnsserver.DNS_ADDR.MaxSa", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Maxsa", "dnsserver.DNS_ADDR.MaxSa", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwDsPollingInterval,
          { "Dwdspollinginterval", "dnsserver.DNS_RPC_SERVER_INFO_W2K.dwDsPollingInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_dnsserver_DnssrvQuery2_pszOperation,
@@ -14817,7 +14849,7 @@ void proto_register_dcerpc_dnsserver(void)
        { &hf_dnsserver_DNS_RPC_DP_ENUM_dwZoneCount,
          { "Dwzonecount", "dnsserver.DNS_RPC_DP_ENUM.dwZoneCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fReserveArray,
-         { "Freservearray", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fReserveArray", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Freservearray", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fReserveArray", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_pwszZoneDn,
          { "Pwszzonedn", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.pwszZoneDn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwForwarderTimeout,
index c9c4e58b3991998708a3794132232116e3d9b960..0c3ca580de871fdbf7d5928b03868015665ccb88 100644 (file)
@@ -430,7 +430,7 @@ static int drsblobs_dissect_element_repsFromTo1_other_info_(tvbuff_t *tvb _U_, i
 static int drsblobs_dissect_element_repsFromTo1_other_info_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_repsFromTo1_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_repsFromTo1_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int drsblobs_dissect_element_repsFromTo1_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo1_schedule_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_repsFromTo1_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_repsFromTo1_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_repsFromTo1_source_dsa_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -453,7 +453,7 @@ static int drsblobs_dissect_element_repsFromTo2_other_info_(tvbuff_t *tvb _U_, i
 static int drsblobs_dissect_element_repsFromTo2_other_info_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_repsFromTo2_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_repsFromTo2_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int drsblobs_dissect_element_repsFromTo2_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2_schedule_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_repsFromTo2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_repsFromTo2_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_repsFromTo2_source_dsa_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -468,7 +468,7 @@ static int drsblobs_dissect_element_repsFromToBlob_ctr(tvbuff_t *tvb _U_, int of
 static int drsblobs_dissect_element_scheduleHeader_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_scheduleHeader_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_scheduleSlots_slots(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int drsblobs_dissect_element_scheduleSlots_slots_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_scheduleSlots_slots_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_schedule_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_schedule_bandwidth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_schedule_numberOfSchedules(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -512,7 +512,7 @@ static int drsblobs_dissect_element_ldapControlDirSyncBlob_highwatermark(tvbuff_
 static int drsblobs_dissect_element_ldapControlDirSyncBlob_guid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_ldapControlDirSyncBlob_extra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *extra_length);
 static int drsblobs_dissect_element_ldapControlDirSyncCookie_msds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int drsblobs_dissect_element_ldapControlDirSyncCookie_msds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ldapControlDirSyncCookie_msds_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_ldapControlDirSyncCookie_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_ldapControlDirSyncCookie_blob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_supplementalCredentialsPackage_name_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -594,7 +594,7 @@ static int drsblobs_dissect_element_package_PrimaryKerberosBlob_flags(tvbuff_t *
 static int drsblobs_dissect_element_package_PrimaryKerberosBlob_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version);
 static int drsblobs_dissect_element_package_PrimaryCLEARTEXTBlob_cleartext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_package_PrimaryWDigestHash_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int drsblobs_dissect_element_package_PrimaryWDigestHash_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryWDigestHash_hash_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_package_PrimaryWDigestBlob_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_package_PrimaryWDigestBlob_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_package_PrimaryWDigestBlob_num_hashes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -629,7 +629,7 @@ static int drsblobs_dissect_element_trustAuthInOutBlob_current_(tvbuff_t *tvb _U
 static int drsblobs_dissect_element_trustAuthInOutBlob_previous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_trustAuthInOutBlob_previous_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_trustDomainPasswords_confounder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int drsblobs_dissect_element_trustDomainPasswords_confounder_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_trustDomainPasswords_confounder_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_trustDomainPasswords_outgoing(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_trustDomainPasswords_outgoing_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_trustDomainPasswords_incoming(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -641,7 +641,7 @@ static int drsblobs_dissect_element_DsCompressedChunk_data(tvbuff_t *tvb _U_, in
 static int drsblobs_dissect_element_ExtendedErrorAString___size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_ExtendedErrorAString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_ExtendedErrorAString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int drsblobs_dissect_element_ExtendedErrorAString_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorAString_string__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_ExtendedErrorUString___size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_ExtendedErrorUString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_ExtendedErrorUString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -649,7 +649,7 @@ static int drsblobs_dissect_element_ExtendedErrorUString_string__(tvbuff_t *tvb
 static int drsblobs_dissect_element_ExtendedErrorBlob_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_ExtendedErrorBlob_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsblobs_dissect_element_ExtendedErrorBlob_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int drsblobs_dissect_element_ExtendedErrorBlob_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorBlob_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 const value_string drsblobs_ExtendedErrorComputerNamePresent_vals[] = {
        { EXTENDED_ERROR_COMPUTER_NAME_PRESENT, "EXTENDED_ERROR_COMPUTER_NAME_PRESENT" },
        { EXTENDED_ERROR_COMPUTER_NAME_NOT_PRESENT, "EXTENDED_ERROR_COMPUTER_NAME_NOT_PRESENT" },
@@ -1492,17 +1492,19 @@ drsblobs_dissect_element_repsFromTo1_replica_flags(tvbuff_t *tvb _U_, int offset
 static int
 drsblobs_dissect_element_repsFromTo1_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 84; i++)
-               offset = drsblobs_dissect_element_repsFromTo1_schedule_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = drsblobs_dissect_element_repsFromTo1_schedule_(tvb, offset, 84, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-drsblobs_dissect_element_repsFromTo1_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+drsblobs_dissect_element_repsFromTo1_schedule_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo1_schedule, 0);
+       proto_tree_add_bytes(tree, hf_drsblobs_repsFromTo1_schedule, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1800,17 +1802,19 @@ drsblobs_dissect_element_repsFromTo2_replica_flags(tvbuff_t *tvb _U_, int offset
 static int
 drsblobs_dissect_element_repsFromTo2_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 84; i++)
-               offset = drsblobs_dissect_element_repsFromTo2_schedule_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = drsblobs_dissect_element_repsFromTo2_schedule_(tvb, offset, 84, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-drsblobs_dissect_element_repsFromTo2_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+drsblobs_dissect_element_repsFromTo2_schedule_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo2_schedule, 0);
+       proto_tree_add_bytes(tree, hf_drsblobs_repsFromTo2_schedule, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -2099,17 +2103,19 @@ drsblobs_dissect_struct_scheduleHeader(tvbuff_t *tvb _U_, int offset _U_, packet
 static int
 drsblobs_dissect_element_scheduleSlots_slots(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 168; i++)
-               offset = drsblobs_dissect_element_scheduleSlots_slots_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = drsblobs_dissect_element_scheduleSlots_slots_(tvb, offset, 168, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-drsblobs_dissect_element_scheduleSlots_slots_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+drsblobs_dissect_element_scheduleSlots_slots_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_scheduleSlots_slots, 0);
+       proto_tree_add_bytes(tree, hf_drsblobs_scheduleSlots_slots, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -2904,17 +2910,19 @@ drsblobs_dissect_struct_ldapControlDirSyncBlob(tvbuff_t *tvb _U_, int offset _U_
 static int
 drsblobs_dissect_element_ldapControlDirSyncCookie_msds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 4; i++)
-               offset = drsblobs_dissect_element_ldapControlDirSyncCookie_msds_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = drsblobs_dissect_element_ldapControlDirSyncCookie_msds_(tvb, offset, 4, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-drsblobs_dissect_element_ldapControlDirSyncCookie_msds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+drsblobs_dissect_element_ldapControlDirSyncCookie_msds_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_ldapControlDirSyncCookie_msds, 0);
+       proto_tree_add_bytes(tree, hf_drsblobs_ldapControlDirSyncCookie_msds, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3111,9 +3119,11 @@ drsblobs_dissect_enum_supplementalCredentialsSignature(tvbuff_t *tvb _U_, int of
 static int
 drsblobs_dissect_element_supplementalCredentialsSubBlob_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 0x30; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = drsblobs_dissect_element_supplementalCredentialsSubBlob_prefix_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -4195,17 +4205,19 @@ drsblobs_dissect_struct_package_PrimaryCLEARTEXTBlob(tvbuff_t *tvb _U_, int offs
 static int
 drsblobs_dissect_element_package_PrimaryWDigestHash_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 16; i++)
-               offset = drsblobs_dissect_element_package_PrimaryWDigestHash_hash_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = drsblobs_dissect_element_package_PrimaryWDigestHash_hash_(tvb, offset, 16, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-drsblobs_dissect_element_package_PrimaryWDigestHash_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+drsblobs_dissect_element_package_PrimaryWDigestHash_hash_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryWDigestHash_hash, 0);
+       proto_tree_add_bytes(tree, hf_drsblobs_package_PrimaryWDigestHash_hash, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -4906,17 +4918,19 @@ drsblobs_dissect_struct_trustAuthInOutBlob(tvbuff_t *tvb _U_, int offset _U_, pa
 static int
 drsblobs_dissect_element_trustDomainPasswords_confounder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 512; i++)
-               offset = drsblobs_dissect_element_trustDomainPasswords_confounder_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = drsblobs_dissect_element_trustDomainPasswords_confounder_(tvb, offset, 512, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-drsblobs_dissect_element_trustDomainPasswords_confounder_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+drsblobs_dissect_element_trustDomainPasswords_confounder_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_trustDomainPasswords_confounder, 0);
+       proto_tree_add_bytes(tree, hf_drsblobs_trustDomainPasswords_confounder, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -5112,15 +5126,15 @@ drsblobs_dissect_element_ExtendedErrorAString_string(tvbuff_t *tvb _U_, int offs
 static int
 drsblobs_dissect_element_ExtendedErrorAString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsblobs_dissect_element_ExtendedErrorAString_string__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, drsblobs_dissect_element_ExtendedErrorAString_string__);
 
        return offset;
 }
 
 static int
-drsblobs_dissect_element_ExtendedErrorAString_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+drsblobs_dissect_element_ExtendedErrorAString_string__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorAString_string, 0);
+       proto_tree_add_bytes(tree, hf_drsblobs_ExtendedErrorAString_string, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -5252,15 +5266,15 @@ drsblobs_dissect_element_ExtendedErrorBlob_data(tvbuff_t *tvb _U_, int offset _U
 static int
 drsblobs_dissect_element_ExtendedErrorBlob_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsblobs_dissect_element_ExtendedErrorBlob_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, drsblobs_dissect_element_ExtendedErrorBlob_data__);
 
        return offset;
 }
 
 static int
-drsblobs_dissect_element_ExtendedErrorBlob_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+drsblobs_dissect_element_ExtendedErrorBlob_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorBlob_data, 0);
+       proto_tree_add_bytes(tree, hf_drsblobs_ExtendedErrorBlob_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -6832,7 +6846,7 @@ void proto_register_dcerpc_drsblobs(void)
        { &hf_drsblobs_ForestTrustInfoRecordArmor_record,
          { "Record", "drsblobs.ForestTrustInfoRecordArmor.record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_ExtendedErrorBlob_data,
-         { "Data", "drsblobs.ExtendedErrorBlob.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "drsblobs.ExtendedErrorBlob.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_ForestTrustInfo_records,
          { "Records", "drsblobs.ForestTrustInfo.records", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_ldapControlDirSyncBlob_u3,
@@ -6848,7 +6862,7 @@ void proto_register_dcerpc_drsblobs(void)
        { &hf_drsblobs_package_PrimaryKerberosBlob_flags,
          { "Flags", "drsblobs.package_PrimaryKerberosBlob.flags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_ldapControlDirSyncCookie_msds,
-         { "Msds", "drsblobs.ldapControlDirSyncCookie.msds", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Msds", "drsblobs.ldapControlDirSyncCookie.msds", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_replPropertyMetaData1_local_usn,
          { "Local Usn", "drsblobs.replPropertyMetaData1.local_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_package_PrimaryKerberosCtr3_padding1,
@@ -7000,7 +7014,7 @@ void proto_register_dcerpc_drsblobs(void)
        { &hf_drsblobs_partialAttributeSetBlob_version,
          { "Version", "drsblobs.partialAttributeSetBlob.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_ExtendedErrorAString_string,
-         { "String", "drsblobs.ExtendedErrorAString.string", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "String", "drsblobs.ExtendedErrorAString.string", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_prefixMapCtr_dsdb,
          { "Dsdb", "drsblobs.prefixMapCtr.dsdb", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_repsFromTo2_source_dsa_invocation_id,
@@ -7124,7 +7138,7 @@ void proto_register_dcerpc_drsblobs(void)
        { &hf_drsblobs_repsFromToBlob_reserved,
          { "Reserved", "drsblobs.repsFromToBlob.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_repsFromTo2_schedule,
-         { "Schedule", "drsblobs.repsFromTo2.schedule", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Schedule", "drsblobs.repsFromTo2.schedule", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_AuthInfo_version,
          { "Version", "drsblobs.AuthInfo.version", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_trustAuthInOutBlob_previous,
@@ -7186,7 +7200,7 @@ void proto_register_dcerpc_drsblobs(void)
        { &hf_drsblobs_repsFromTo_ctr1,
          { "Ctr1", "drsblobs.repsFromTo.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_trustDomainPasswords_confounder,
-         { "Confounder", "drsblobs.trustDomainPasswords.confounder", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Confounder", "drsblobs.trustDomainPasswords.confounder", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_package_PrimaryWDigestBlob_uuknown4,
          { "Uuknown4", "drsblobs.package_PrimaryWDigestBlob.uuknown4", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_repsFromTo1_consecutive_sync_failures,
@@ -7198,7 +7212,7 @@ void proto_register_dcerpc_drsblobs(void)
        { &hf_drsblobs_ExtendedErrorInfo_pid,
          { "Pid", "drsblobs.ExtendedErrorInfo.pid", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_scheduleSlots_slots,
-         { "Slots", "drsblobs.scheduleSlots.slots", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Slots", "drsblobs.scheduleSlots.slots", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_ldapControlDirSyncCookie_blob_,
          { "Subcontext length", "drsblobs.ldapControlDirSyncCookie.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_AuthenticationInformation_AuthType,
@@ -7210,7 +7224,7 @@ void proto_register_dcerpc_drsblobs(void)
        { &hf_drsblobs_ExtendedErrorInfo_computer_name,
          { "Computer Name", "drsblobs.ExtendedErrorInfo.computer_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_repsFromTo1_schedule,
-         { "Schedule", "drsblobs.repsFromTo1.schedule", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Schedule", "drsblobs.repsFromTo1.schedule", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_scheduleHeader_type,
          { "Type", "drsblobs.scheduleHeader.type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_package_PrimaryCLEARTEXTBlob_cleartext,
@@ -7274,7 +7288,7 @@ void proto_register_dcerpc_drsblobs(void)
        { &hf_drsblobs_replPropertyMetaDataCtr1_count,
          { "Count", "drsblobs.replPropertyMetaDataCtr1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_package_PrimaryWDigestHash_hash,
-         { "Hash", "drsblobs.package_PrimaryWDigestHash.hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Hash", "drsblobs.package_PrimaryWDigestHash.hash", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_ldapControlDirSyncBlob_guid1,
          { "Guid1", "drsblobs.ldapControlDirSyncBlob.guid1", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsblobs_replUpToDateVectorCtr_ctr1,
index b0ead08e97e332480cacb67a5ab23c213487a3fe..e6e14c8e975624fd992d076af98b88b0134da32b 100644 (file)
@@ -1380,7 +1380,7 @@ static int drsuapi_dissect_element_DsGetNCChangesRequest5_fsmo_info(tvbuff_t *tv
 static int drsuapi_dissect_element_DsReplicaOID_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsReplicaOID_binary_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsReplicaOID_binary_oid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int drsuapi_dissect_element_DsReplicaOID_binary_oid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOID_binary_oid__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsReplicaOIDMapping_id_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsReplicaOIDMapping_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_num_mappings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1701,7 +1701,7 @@ static int drsuapi_dissect_element_DsReplicaAddRequest1_naming_context_(tvbuff_t
 static int drsuapi_dissect_element_DsReplicaAddRequest1_source_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsReplicaAddRequest1_source_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsReplicaAddRequest1_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int drsuapi_dissect_element_DsReplicaAddRequest1_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest1_schedule_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsReplicaAddRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsReplicaAddRequest2_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsReplicaAddRequest2_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1712,7 +1712,7 @@ static int drsuapi_dissect_element_DsReplicaAddRequest2_transport_dn_(tvbuff_t *
 static int drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsReplicaAddRequest2_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int drsuapi_dissect_element_DsReplicaAddRequest2_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest2_schedule_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsReplicaAddRequest2_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsReplicaAddRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsReplicaAddRequest_req2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1728,7 +1728,7 @@ static int drsuapi_dissect_element_DsReplicaModRequest1_source_dra(tvbuff_t *tvb
 static int drsuapi_dissect_element_DsReplicaModRequest1_source_dra_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsReplicaModRequest1_source_dra_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsReplicaModRequest1_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int drsuapi_dissect_element_DsReplicaModRequest1_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaModRequest1_schedule_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsReplicaModRequest1_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsReplicaModRequest1_modify_fields(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsReplicaModRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1781,7 +1781,7 @@ static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_preferred_maximum_l
 static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1794,10 +1794,10 @@ static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_lsa_creation_time(tvbu
 static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 const value_string drsuapi_drsuapi_DsNameStatus_vals[] = {
        { DRSUAPI_DS_NAME_STATUS_OK, "DRSUAPI_DS_NAME_STATUS_OK" },
@@ -2022,7 +2022,7 @@ static int drsuapi_dissect_element_SecBuffer_buf_size(tvbuff_t *tvb _U_, int off
 static int drsuapi_dissect_element_SecBuffer_buf_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_SecBuffer_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_SecBuffer_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int drsuapi_dissect_element_SecBuffer_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_SecBuffer_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_SecBufferDesc_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_SecBufferDesc_buff_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int drsuapi_dissect_element_SecBufferDesc_buffers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -4607,15 +4607,15 @@ drsuapi_dissect_element_DsReplicaOID_binary_oid(tvbuff_t *tvb _U_, int offset _U
 static int
 drsuapi_dissect_element_DsReplicaOID_binary_oid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaOID_binary_oid__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaOID_binary_oid__);
 
        return offset;
 }
 
 static int
-drsuapi_dissect_element_DsReplicaOID_binary_oid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+drsuapi_dissect_element_DsReplicaOID_binary_oid__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaOID_binary_oid, 0);
+       proto_tree_add_bytes(tree, hf_drsuapi_drsuapi_DsReplicaOID_binary_oid, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -8061,17 +8061,19 @@ drsuapi_dissect_element_DsReplicaAddRequest1_source_dsa_address_(tvbuff_t *tvb _
 static int
 drsuapi_dissect_element_DsReplicaAddRequest1_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 84; i++)
-               offset = drsuapi_dissect_element_DsReplicaAddRequest1_schedule_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = drsuapi_dissect_element_DsReplicaAddRequest1_schedule_(tvb, offset, 84, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-drsuapi_dissect_element_DsReplicaAddRequest1_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+drsuapi_dissect_element_DsReplicaAddRequest1_schedule_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAddRequest1_schedule, 0);
+       proto_tree_add_bytes(tree, hf_drsuapi_drsuapi_DsReplicaAddRequest1_schedule, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -8200,17 +8202,19 @@ drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_address_(tvbuff_t *tvb _
 static int
 drsuapi_dissect_element_DsReplicaAddRequest2_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 84; i++)
-               offset = drsuapi_dissect_element_DsReplicaAddRequest2_schedule_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = drsuapi_dissect_element_DsReplicaAddRequest2_schedule_(tvb, offset, 84, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-drsuapi_dissect_element_DsReplicaAddRequest2_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+drsuapi_dissect_element_DsReplicaAddRequest2_schedule_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAddRequest2_schedule, 0);
+       proto_tree_add_bytes(tree, hf_drsuapi_drsuapi_DsReplicaAddRequest2_schedule, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -8497,17 +8501,19 @@ drsuapi_dissect_element_DsReplicaModRequest1_source_dra_address_(tvbuff_t *tvb _
 static int
 drsuapi_dissect_element_DsReplicaModRequest1_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 84; i++)
-               offset = drsuapi_dissect_element_DsReplicaModRequest1_schedule_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = drsuapi_dissect_element_DsReplicaModRequest1_schedule_(tvb, offset, 84, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-drsuapi_dissect_element_DsReplicaModRequest1_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+drsuapi_dissect_element_DsReplicaModRequest1_schedule_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaModRequest1_schedule, 0);
+       proto_tree_add_bytes(tree, hf_drsuapi_drsuapi_DsReplicaModRequest1_schedule, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -9096,15 +9102,15 @@ drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data(tvbuff_t *tvb _U_
 static int
 drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data__);
 
        return offset;
 }
 
 static int
-drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_data, 0);
+       proto_tree_add_bytes(tree, hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -9283,15 +9289,15 @@ drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data(tvbuff_t *tvb _U_, i
 static int
 drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data__);
 
        return offset;
 }
 
 static int
-drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_data, 0);
+       proto_tree_add_bytes(tree, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -9307,15 +9313,15 @@ drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data(tvbuff_t *tvb _U_, int o
 static int
 drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data__);
 
        return offset;
 }
 
 static int
-drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_data, 0);
+       proto_tree_add_bytes(tree, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -11896,15 +11902,15 @@ drsuapi_dissect_element_SecBuffer_buffer(tvbuff_t *tvb _U_, int offset _U_, pack
 static int
 drsuapi_dissect_element_SecBuffer_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_SecBuffer_buffer__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_SecBuffer_buffer__);
 
        return offset;
 }
 
 static int
-drsuapi_dissect_element_SecBuffer_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+drsuapi_dissect_element_SecBuffer_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_SecBuffer_buffer, 0);
+       proto_tree_add_bytes(tree, hf_drsuapi_drsuapi_SecBuffer_buffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -19659,7 +19665,7 @@ void proto_register_dcerpc_drsuapi(void)
        { &hf_drsuapi_drsuapi_DsNameRequest1_format_offered,
          { "Format Offered", "drsuapi.drsuapi_DsNameRequest1.format_offered", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsNameFormat_vals), 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsReplicaModRequest1_schedule,
-         { "Schedule", "drsuapi.drsuapi_DsReplicaModRequest1.schedule", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Schedule", "drsuapi.drsuapi_DsReplicaModRequest1.schedule", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_source_dsa_invocation_id,
          { "Source Dsa Invocation Id", "drsuapi.drsuapi_DsGetNCChangesRequest8.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_value,
@@ -19875,7 +19881,7 @@ void proto_register_dcerpc_drsuapi(void)
        { &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_fsmo_info,
          { "Fsmo Info", "drsuapi.drsuapi_DsGetNCChangesRequest8.fsmo_info", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_SecBuffer_buffer,
-         { "Buffer", "drsuapi.drsuapi_SecBuffer.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Buffer", "drsuapi.drsuapi_SecBuffer.buffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsGetDCConnection01_unknown2,
          { "Unknown2", "drsuapi.drsuapi_DsGetDCConnection01.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_ANC,
@@ -19991,7 +19997,7 @@ void proto_register_dcerpc_drsuapi(void)
        { &hf_drsuapi_drsuapi_DsReplicaConnection04_u5,
          { "U5", "drsuapi.drsuapi_DsReplicaConnection04.u5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_data,
-         { "Restart Data", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.restart_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Restart Data", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.restart_data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC,
          { "Drsuapi Drs Init Sync", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_INIT_SYNC", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC_tfs), ( 0x00000020 ), NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsExecuteKCCRequest_ctr1,
@@ -20089,7 +20095,7 @@ void proto_register_dcerpc_drsuapi(void)
        { &hf_drsuapi_drsuapi_DsGetMemberships_req,
          { "Req", "drsuapi.drsuapi_DsGetMemberships.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_data,
-         { "Log Data", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.log_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Log Data", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.log_data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_extended_data,
          { "Extended Data", "drsuapi.drsuapi_DsAddEntryErrorInfo_Referr_V1.extended_data", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsGetNCChangesCtr1___ndr_size,
@@ -20347,7 +20353,7 @@ void proto_register_dcerpc_drsuapi(void)
        { &hf_drsuapi_drsuapi_DsGetDCInfoRequest1_domain_name,
          { "Domain Name", "drsuapi.drsuapi_DsGetDCInfoRequest1.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsReplicaAddRequest1_schedule,
-         { "Schedule", "drsuapi.drsuapi_DsReplicaAddRequest1.schedule", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Schedule", "drsuapi.drsuapi_DsReplicaAddRequest1.schedule", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsAddEntryRequest3_client_creds,
          { "Client Creds", "drsuapi.drsuapi_DsAddEntryRequest3.client_creds", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsGetNT4ChangeLog_bind_handle,
@@ -20493,7 +20499,7 @@ void proto_register_dcerpc_drsuapi(void)
        { &hf_drsuapi_drsuapi_DsReplicaMetaDataCtr_meta_data,
          { "Meta Data", "drsuapi.drsuapi_DsReplicaMetaDataCtr.meta_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsReplicaAddRequest2_schedule,
-         { "Schedule", "drsuapi.drsuapi_DsReplicaAddRequest2.schedule", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Schedule", "drsuapi.drsuapi_DsReplicaAddRequest2.schedule", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_options,
          { "Options", "drsuapi.drsuapi_DsReplicaUpdateRefsRequest1.options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsExecuteKCC_level,
@@ -20569,7 +20575,7 @@ void proto_register_dcerpc_drsuapi(void)
        { &hf_drsuapi_drsuapi_DsReplicaConnection04_bind_time,
          { "Bind Time", "drsuapi.drsuapi_DsReplicaConnection04.bind_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_data,
-         { "Restart Data", "drsuapi.drsuapi_DsGetNT4ChangeLogRequest1.restart_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Restart Data", "drsuapi.drsuapi_DsGetNT4ChangeLogRequest1.restart_data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsGetDCInfo1_dns_name,
          { "Dns Name", "drsuapi.drsuapi_DsGetDCInfo1.dns_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_new_highwatermark,
@@ -20705,7 +20711,7 @@ void proto_register_dcerpc_drsuapi(void)
        { &hf_drsuapi_drsuapi_DsReplicaAddRequest2_options,
          { "Options", "drsuapi.drsuapi_DsReplicaAddRequest2.options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsReplicaOID_binary_oid,
-         { "Binary Oid", "drsuapi.drsuapi_DsReplicaOID.binary_oid", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Binary Oid", "drsuapi.drsuapi_DsReplicaOID.binary_oid", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsGetMembershipsCtr1_status,
          { "Status", "drsuapi.drsuapi_DsGetMembershipsCtr1.status", FT_UINT32, BASE_DEC, VALS(NT_errors), 0, NULL, HFILL }},
        { &hf_drsuapi_drsuapi_DsReplicaOIDMapping_id_prefix,
index 3987c3eaa90eaf0eff4f15f85b8e5af804d537a6..33e4d46097776f284beab56030df0b77685742ee 100644 (file)
@@ -140,15 +140,15 @@ static int rpcecho_dissect_element_echo_AddOne_out_data(tvbuff_t *tvb _U_, int o
 static int rpcecho_dissect_element_echo_AddOne_out_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int rpcecho_dissect_element_echo_EchoData_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int rpcecho_dissect_element_echo_EchoData_in_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int rpcecho_dissect_element_echo_EchoData_in_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_EchoData_in_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int rpcecho_dissect_element_echo_EchoData_out_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int rpcecho_dissect_element_echo_EchoData_out_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_EchoData_out_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int rpcecho_dissect_element_echo_SinkData_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int rpcecho_dissect_element_echo_SinkData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int rpcecho_dissect_element_echo_SinkData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_SinkData_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int rpcecho_dissect_element_echo_SourceData_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int rpcecho_dissect_element_echo_SourceData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int rpcecho_dissect_element_echo_SourceData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_SourceData_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int rpcecho_dissect_element_echo_TestCall_s1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int rpcecho_dissect_element_echo_TestCall_s1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int rpcecho_dissect_element_echo_TestCall_s2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -456,7 +456,7 @@ rpcecho_dissect_element_echo_info7_v1(tvbuff_t *tvb _U_, int offset _U_, packet_
 static int
 rpcecho_dissect_element_echo_info7_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = rpcecho_dissect_struct_HASH(0x2081398)(tvb,offset,pinfo,tree,drep,hf_rpcecho_echo_info7_info4,0);
+       offset = rpcecho_dissect_struct_HASH(0x24d6d68)(tvb,offset,pinfo,tree,drep,hf_rpcecho_echo_info7_info4,0);
 
        return offset;
 }
@@ -532,7 +532,7 @@ rpcecho_dissect_element_echo_Info_info3(tvbuff_t *tvb _U_, int offset _U_, packe
 static int
 rpcecho_dissect_element_echo_Info_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = rpcecho_dissect_struct_HASH(0x2082cd0)(tvb,offset,pinfo,tree,drep,hf_rpcecho_echo_Info_info4,0);
+       offset = rpcecho_dissect_struct_HASH(0x24d85e0)(tvb,offset,pinfo,tree,drep,hf_rpcecho_echo_Info_info4,0);
 
        return offset;
 }
@@ -880,15 +880,15 @@ rpcecho_dissect_element_echo_EchoData_len(tvbuff_t *tvb _U_, int offset _U_, pac
 static int
 rpcecho_dissect_element_echo_EchoData_in_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_EchoData_in_data_);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_EchoData_in_data_);
 
        return offset;
 }
 
 static int
-rpcecho_dissect_element_echo_EchoData_in_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+rpcecho_dissect_element_echo_EchoData_in_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_EchoData_in_data, 0);
+       proto_tree_add_bytes(tree, hf_rpcecho_echo_EchoData_in_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -896,15 +896,15 @@ rpcecho_dissect_element_echo_EchoData_in_data_(tvbuff_t *tvb _U_, int offset _U_
 static int
 rpcecho_dissect_element_echo_EchoData_out_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_EchoData_out_data_);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_EchoData_out_data_);
 
        return offset;
 }
 
 static int
-rpcecho_dissect_element_echo_EchoData_out_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+rpcecho_dissect_element_echo_EchoData_out_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_EchoData_out_data, 0);
+       proto_tree_add_bytes(tree, hf_rpcecho_echo_EchoData_out_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -947,15 +947,15 @@ rpcecho_dissect_element_echo_SinkData_len(tvbuff_t *tvb _U_, int offset _U_, pac
 static int
 rpcecho_dissect_element_echo_SinkData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_SinkData_data_);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_SinkData_data_);
 
        return offset;
 }
 
 static int
-rpcecho_dissect_element_echo_SinkData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+rpcecho_dissect_element_echo_SinkData_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_SinkData_data, 0);
+       proto_tree_add_bytes(tree, hf_rpcecho_echo_SinkData_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -994,15 +994,15 @@ rpcecho_dissect_element_echo_SourceData_len(tvbuff_t *tvb _U_, int offset _U_, p
 static int
 rpcecho_dissect_element_echo_SourceData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_SourceData_data_);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_SourceData_data_);
 
        return offset;
 }
 
 static int
-rpcecho_dissect_element_echo_SourceData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+rpcecho_dissect_element_echo_SourceData_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_SourceData_data, 0);
+       proto_tree_add_bytes(tree, hf_rpcecho_echo_SourceData_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1413,7 +1413,7 @@ void proto_register_dcerpc_rpcecho(void)
        { &hf_rpcecho_echo_TestCall2_info,
          { "Info", "rpcecho.echo_TestCall2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_rpcecho_echo_EchoData_in_data,
-         { "In Data", "rpcecho.echo_EchoData.in_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "In Data", "rpcecho.echo_EchoData.in_data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_rpcecho_echo_info6_info1,
          { "Info1", "rpcecho.echo_info6.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_rpcecho_echo_Enum3_e1,
@@ -1461,13 +1461,13 @@ void proto_register_dcerpc_rpcecho(void)
        { &hf_rpcecho_echo_Enum3_e2,
          { "E2", "rpcecho.echo_Enum3.e2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_rpcecho_echo_SinkData_data,
-         { "Data", "rpcecho.echo_SinkData.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "rpcecho.echo_SinkData.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_rpcecho_echo_EchoData_out_data,
-         { "Out Data", "rpcecho.echo_EchoData.out_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Out Data", "rpcecho.echo_EchoData.out_data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_rpcecho_echo_Info_info5,
          { "Info5", "rpcecho.echo_Info.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_rpcecho_echo_SourceData_data,
-         { "Data", "rpcecho.echo_SourceData.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "rpcecho.echo_SourceData.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_rpcecho_echo_info4_v,
          { "V", "rpcecho.echo_info4.v", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_rpcecho_echo_info7_info4,
index b365f6c07c0888a0e8e949f4debc2092be25ca11..101746523b28ef658e83dc727a631b497e6e909b 100644 (file)
@@ -84,7 +84,7 @@ static guint16 ver_dcerpc_efs = 1;
 static int efs_dissect_element_EFS_HASH_BLOB_cbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int efs_dissect_element_EFS_HASH_BLOB_pbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int efs_dissect_element_EFS_HASH_BLOB_pbData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int efs_dissect_element_EFS_HASH_BLOB_pbData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EFS_HASH_BLOB_pbData__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_cbTotalLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pUserSid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pUserSid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -100,7 +100,7 @@ static int efs_dissect_element_EFS_CERTIFICATE_BLOB_dwCertEncodingType(tvbuff_t
 static int efs_dissect_element_EFS_CERTIFICATE_BLOB_cbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_TotalLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_pUserSid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int efs_dissect_element_ENCRYPTION_CERTIFICATE_pUserSid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -157,15 +157,15 @@ efs_dissect_element_EFS_HASH_BLOB_pbData(tvbuff_t *tvb _U_, int offset _U_, pack
 static int
 efs_dissect_element_EFS_HASH_BLOB_pbData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, efs_dissect_element_EFS_HASH_BLOB_pbData__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, efs_dissect_element_EFS_HASH_BLOB_pbData__);
 
        return offset;
 }
 
 static int
-efs_dissect_element_EFS_HASH_BLOB_pbData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+efs_dissect_element_EFS_HASH_BLOB_pbData__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_efs_EFS_HASH_BLOB_pbData, 0);
+       proto_tree_add_bytes(tree, hf_efs_EFS_HASH_BLOB_pbData, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -409,15 +409,15 @@ efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData(tvbuff_t *tvb _U_, int offset _U
 static int
 efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData__);
 
        return offset;
 }
 
 static int
-efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_efs_EFS_CERTIFICATE_BLOB_pbData, 0);
+       proto_tree_add_bytes(tree, hf_efs_EFS_CERTIFICATE_BLOB_pbData, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1199,7 +1199,7 @@ void proto_register_dcerpc_efs(void)
        { &hf_efs_EfsRpcWriteFileRaw_pvContext,
          { "Pvcontext", "efs.EfsRpcWriteFileRaw.pvContext", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_efs_EFS_HASH_BLOB_pbData,
-         { "Pbdata", "efs.EFS_HASH_BLOB.pbData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Pbdata", "efs.EFS_HASH_BLOB.pbData", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_efs_EfsRpcAddUsersToFile_FileName,
          { "Filename", "efs.EfsRpcAddUsersToFile.FileName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_efs_EfsRpcReadFileRaw_pvContext,
@@ -1225,7 +1225,7 @@ void proto_register_dcerpc_efs(void)
        { &hf_efs_ENCRYPTION_CERTIFICATE_pUserSid,
          { "Pusersid", "efs.ENCRYPTION_CERTIFICATE.pUserSid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_efs_EFS_CERTIFICATE_BLOB_pbData,
-         { "Pbdata", "efs.EFS_CERTIFICATE_BLOB.pbData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Pbdata", "efs.EFS_CERTIFICATE_BLOB.pbData", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_efs_EFS_HASH_BLOB_cbData,
          { "Cbdata", "efs.EFS_HASH_BLOB.cbData", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_efs_EfsRpcCloseRaw_pvContext,
index caf9a4dc3b98fddf22f78ee5a5a5aa30cea17eae..2a11206dca18f59d805bc17078ca3f480b67251a 100644 (file)
@@ -234,7 +234,7 @@ static int eventlog_dissect_element_OpenUnknown0_unknown0(tvbuff_t *tvb _U_, int
 static int eventlog_dissect_element_OpenUnknown0_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_Record_tdb_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_Record_tdb_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int eventlog_dissect_element_Record_tdb_reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_reserved_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_Record_tdb_record_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_Record_tdb_time_generated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_Record_tdb_time_written(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -269,7 +269,7 @@ const value_string eventlog_EVENTLOG_HEADER_FLAGS_vals[] = {
 };
 static int eventlog_dissect_element_EVENTLOGHEADER_HeaderSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_EVENTLOGHEADER_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int eventlog_dissect_element_EVENTLOGHEADER_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGHEADER_Signature_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_EVENTLOGHEADER_MajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_EVENTLOGHEADER_MinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_EVENTLOGHEADER_StartOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -282,7 +282,7 @@ static int eventlog_dissect_element_EVENTLOGHEADER_Retention(tvbuff_t *tvb _U_,
 static int eventlog_dissect_element_EVENTLOGHEADER_EndHeaderSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_EVENTLOGRECORD_Length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_EVENTLOGRECORD_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int eventlog_dissect_element_EVENTLOGRECORD_Reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_Reserved_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_EVENTLOGRECORD_RecordNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_EVENTLOGRECORD_TimeGenerated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_EVENTLOGRECORD_TimeWritten(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -377,7 +377,7 @@ static int eventlog_dissect_element_ReadEventLogW_offset(tvbuff_t *tvb _U_, int
 static int eventlog_dissect_element_ReadEventLogW_number_of_bytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_ReadEventLogW_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_ReadEventLogW_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int eventlog_dissect_element_ReadEventLogW_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReadEventLogW_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_ReadEventLogW_sent_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_ReadEventLogW_sent_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_ReadEventLogW_real_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -400,7 +400,7 @@ static int eventlog_dissect_element_ReportEventW_strings__(tvbuff_t *tvb _U_, in
 static int eventlog_dissect_element_ReportEventW_strings___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_ReportEventW_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_ReportEventW_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int eventlog_dissect_element_ReportEventW_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_ReportEventW_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_ReportEventW_record_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_ReportEventW_record_number_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -411,7 +411,7 @@ static int eventlog_dissect_element_GetLogInformation_handle_(tvbuff_t *tvb _U_,
 static int eventlog_dissect_element_GetLogInformation_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_GetLogInformation_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_GetLogInformation_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int eventlog_dissect_element_GetLogInformation_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetLogInformation_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_GetLogInformation_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_GetLogInformation_bytes_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_GetLogInformation_bytes_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -437,7 +437,7 @@ static int eventlog_dissect_element_ReportEventAndSourceW_strings__(tvbuff_t *tv
 static int eventlog_dissect_element_ReportEventAndSourceW_strings___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_ReportEventAndSourceW_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_ReportEventAndSourceW_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int eventlog_dissect_element_ReportEventAndSourceW_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_ReportEventAndSourceW_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_ReportEventAndSourceW_record_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog_dissect_element_ReportEventAndSourceW_record_number_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -630,17 +630,19 @@ eventlog_dissect_element_Record_tdb_size(tvbuff_t *tvb _U_, int offset _U_, pack
 static int
 eventlog_dissect_element_Record_tdb_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 4; i++)
-               offset = eventlog_dissect_element_Record_tdb_reserved_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = eventlog_dissect_element_Record_tdb_reserved_(tvb, offset, 4, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-eventlog_dissect_element_Record_tdb_reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+eventlog_dissect_element_Record_tdb_reserved_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_reserved, 0);
+       proto_tree_add_bytes(tree, hf_eventlog_eventlog_Record_tdb_reserved, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -972,17 +974,19 @@ eventlog_dissect_element_EVENTLOGHEADER_HeaderSize(tvbuff_t *tvb _U_, int offset
 static int
 eventlog_dissect_element_EVENTLOGHEADER_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 4; i++)
-               offset = eventlog_dissect_element_EVENTLOGHEADER_Signature_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = eventlog_dissect_element_EVENTLOGHEADER_Signature_(tvb, offset, 4, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-eventlog_dissect_element_EVENTLOGHEADER_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+eventlog_dissect_element_EVENTLOGHEADER_Signature_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGHEADER_Signature, 0);
+       proto_tree_add_bytes(tree, hf_eventlog_EVENTLOGHEADER_Signature, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1157,17 +1161,19 @@ eventlog_dissect_element_EVENTLOGRECORD_Length(tvbuff_t *tvb _U_, int offset _U_
 static int
 eventlog_dissect_element_EVENTLOGRECORD_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 4; i++)
-               offset = eventlog_dissect_element_EVENTLOGRECORD_Reserved_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = eventlog_dissect_element_EVENTLOGRECORD_Reserved_(tvb, offset, 4, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-eventlog_dissect_element_EVENTLOGRECORD_Reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+eventlog_dissect_element_EVENTLOGRECORD_Reserved_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_Reserved, 0);
+       proto_tree_add_bytes(tree, hf_eventlog_EVENTLOGRECORD_Reserved, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -2474,15 +2480,15 @@ eventlog_dissect_element_ReadEventLogW_data(tvbuff_t *tvb _U_, int offset _U_, p
 static int
 eventlog_dissect_element_ReadEventLogW_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReadEventLogW_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReadEventLogW_data__);
 
        return offset;
 }
 
 static int
-eventlog_dissect_element_ReadEventLogW_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+eventlog_dissect_element_ReadEventLogW_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReadEventLogW_data, 0);
+       proto_tree_add_bytes(tree, hf_eventlog_eventlog_ReadEventLogW_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -2706,15 +2712,15 @@ eventlog_dissect_element_ReportEventW_data(tvbuff_t *tvb _U_, int offset _U_, pa
 static int
 eventlog_dissect_element_ReportEventW_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventW_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventW_data__);
 
        return offset;
 }
 
 static int
-eventlog_dissect_element_ReportEventW_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+eventlog_dissect_element_ReportEventW_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReportEventW_data, 0);
+       proto_tree_add_bytes(tree, hf_eventlog_eventlog_ReportEventW_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3116,15 +3122,15 @@ eventlog_dissect_element_GetLogInformation_buffer(tvbuff_t *tvb _U_, int offset
 static int
 eventlog_dissect_element_GetLogInformation_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_GetLogInformation_buffer__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_GetLogInformation_buffer__);
 
        return offset;
 }
 
 static int
-eventlog_dissect_element_GetLogInformation_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+eventlog_dissect_element_GetLogInformation_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_GetLogInformation_buffer, 0);
+       proto_tree_add_bytes(tree, hf_eventlog_eventlog_GetLogInformation_buffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3392,15 +3398,15 @@ eventlog_dissect_element_ReportEventAndSourceW_data(tvbuff_t *tvb _U_, int offse
 static int
 eventlog_dissect_element_ReportEventAndSourceW_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventAndSourceW_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventAndSourceW_data__);
 
        return offset;
 }
 
 static int
-eventlog_dissect_element_ReportEventAndSourceW_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+eventlog_dissect_element_ReportEventAndSourceW_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReportEventAndSourceW_data, 0);
+       proto_tree_add_bytes(tree, hf_eventlog_eventlog_ReportEventAndSourceW_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3589,7 +3595,7 @@ void proto_register_dcerpc_eventlog(void)
        { &hf_eventlog_EVENTLOGRECORD_Data,
          { "Data", "eventlog.EVENTLOGRECORD.Data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_EVENTLOGHEADER_Signature,
-         { "Signature", "eventlog.EVENTLOGHEADER.Signature", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Signature", "eventlog.EVENTLOGHEADER.Signature", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_EVENTLOG_FULL_INFORMATION_full,
          { "Full", "eventlog.EVENTLOG_FULL_INFORMATION.full", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_eventlog_ReportEventAndSourceW_num_of_strings,
@@ -3605,7 +3611,7 @@ void proto_register_dcerpc_eventlog(void)
        { &hf_eventlog_eventlog_Record_tdb_source_name,
          { "Source Name", "eventlog.eventlog_Record_tdb.source_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_eventlog_GetLogInformation_buffer,
-         { "Buffer", "eventlog.eventlog_GetLogInformation.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Buffer", "eventlog.eventlog_GetLogInformation.buffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_eventlog_ReportEventW_event_category,
          { "Event Category", "eventlog.eventlog_ReportEventW.event_category", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_EVENTLOGHEADER_EndOffset,
@@ -3645,7 +3651,7 @@ void proto_register_dcerpc_eventlog(void)
        { &hf_eventlog_eventlog_Record_tdb_strings_len,
          { "Strings Len", "eventlog.eventlog_Record_tdb.strings_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_eventlog_ReportEventW_data,
-         { "Data", "eventlog.eventlog_ReportEventW.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "eventlog.eventlog_ReportEventW.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_eventlog_OpenEventLogW_servername,
          { "Servername", "eventlog.eventlog_OpenEventLogW.servername", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_eventlog_ReportEventAndSourceW_record_number,
@@ -3705,7 +3711,7 @@ void proto_register_dcerpc_eventlog(void)
        { &hf_eventlog_eventlog_ReportEventAndSourceW_sourcename,
          { "Sourcename", "eventlog.eventlog_ReportEventAndSourceW.sourcename", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_eventlog_ReadEventLogW_data,
-         { "Data", "eventlog.eventlog_ReadEventLogW.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "eventlog.eventlog_ReadEventLogW.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_eventlog_ReportEventAndSourceW_event_id,
          { "Event Id", "eventlog.eventlog_ReportEventAndSourceW.event_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_eventlog_DeregisterEventSource_handle,
@@ -3747,7 +3753,7 @@ void proto_register_dcerpc_eventlog(void)
        { &hf_eventlog_eventlog_GetOldestRecord_oldest_entry,
          { "Oldest Entry", "eventlog.eventlog_GetOldestRecord.oldest_entry", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_eventlog_Record_tdb_reserved,
-         { "Reserved", "eventlog.eventlog_Record_tdb.reserved", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Reserved", "eventlog.eventlog_Record_tdb.reserved", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_eventlog_OpenUnknown0_unknown0,
          { "Unknown0", "eventlog.eventlog_OpenUnknown0.unknown0", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_EVENTLOGRECORD_TimeWritten,
@@ -3817,7 +3823,7 @@ void proto_register_dcerpc_eventlog(void)
        { &hf_eventlog_EVENTLOGRECORD_ClosingRecordNumber,
          { "Closingrecordnumber", "eventlog.EVENTLOGRECORD.ClosingRecordNumber", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_EVENTLOGRECORD_Reserved,
-         { "Reserved", "eventlog.EVENTLOGRECORD.Reserved", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Reserved", "eventlog.EVENTLOGRECORD.Reserved", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_eventlog_ReportEventW_user_sid,
          { "User Sid", "eventlog.eventlog_ReportEventW.user_sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_EVENTLOGRECORD_DataOffset,
@@ -3873,7 +3879,7 @@ void proto_register_dcerpc_eventlog(void)
        { &hf_eventlog_EVENTLOGRECORD_UserSidLength,
          { "Usersidlength", "eventlog.EVENTLOGRECORD.UserSidLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_eventlog_ReportEventAndSourceW_data,
-         { "Data", "eventlog.eventlog_ReportEventAndSourceW.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "eventlog.eventlog_ReportEventAndSourceW.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_EVENTLOG_EVT_FILE_hdr,
          { "Hdr", "eventlog.EVENTLOG_EVT_FILE.hdr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog_eventlog_Record_tdb_event_id,
index be08c539fba90fcbb59925b7138b8c3ac1ceea61..d9dfd31d76521f77ff3a47e03caa6d279dfecd98 100644 (file)
@@ -236,7 +236,7 @@ static int eventlog6_dissect_element_RpcInfo_sub_err_param(tvbuff_t *tvb _U_, in
 static int eventlog6_dissect_element_boolean8Array_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_boolean8Array_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_boolean8Array_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int eventlog6_dissect_element_boolean8Array_ptr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_boolean8Array_ptr__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_UInt32Array_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_UInt32Array_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_UInt32Array_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -335,7 +335,7 @@ static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuf
 static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer___(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_numRequestedRecords(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -356,7 +356,7 @@ static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBufferSi
 static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer___(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionWaitAsync_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionWaitAsync_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcRegisterControllableOperation_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -411,7 +411,7 @@ static int eventlog6_dissect_element_EvtRpcMessageRender_pubCfgObj_(tvbuff_t *tv
 static int eventlog6_dissect_element_EvtRpcMessageRender_sizeEventId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcMessageRender_eventId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcMessageRender_eventId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int eventlog6_dissect_element_EvtRpcMessageRender_eventId__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_eventId__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcMessageRender_messageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcMessageRender_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcMessageRender_values_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -424,13 +424,13 @@ static int eventlog6_dissect_element_EvtRpcMessageRender_neededSizeString_(tvbuf
 static int eventlog6_dissect_element_EvtRpcMessageRender_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcMessageRender_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcMessageRender_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int eventlog6_dissect_element_EvtRpcMessageRender_string___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_string___(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcMessageRender_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcMessageRender_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_sizeEventId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_eventId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_eventId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_eventId__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_eventId__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_messageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_values_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -443,7 +443,7 @@ static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_neededSizeString
 static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_string___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_string___(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcQueryNext_logQuery(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -466,7 +466,7 @@ static int eventlog6_dissect_element_EvtRpcQueryNext_resultBufferSize_(tvbuff_t
 static int eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer___(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcQuerySeek_logQuery(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcQuerySeek_logQuery_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcQuerySeek_pos(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -500,7 +500,7 @@ static int eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyId(tvbuff_t *t
 static int eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBufferSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBuffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBuffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBufferLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBufferLength_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int eventlog6_dissect_element_EvtRpcGetChannelList_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -672,15 +672,15 @@ eventlog6_dissect_element_boolean8Array_ptr(tvbuff_t *tvb _U_, int offset _U_, p
 static int
 eventlog6_dissect_element_boolean8Array_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_boolean8Array_ptr__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_boolean8Array_ptr__);
 
        return offset;
 }
 
 static int
-eventlog6_dissect_element_boolean8Array_ptr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+eventlog6_dissect_element_boolean8Array_ptr__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_boolean8Array_ptr, 0);
+       proto_tree_add_bytes(tree, hf_eventlog6_eventlog6_boolean8Array_ptr, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1819,15 +1819,15 @@ eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer_(tvbuff
 static int
 eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer___);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer___);
 
        return offset;
 }
 
 static int
-eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer___(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_resultBuffer, 0);
+       proto_tree_add_bytes(tree, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_resultBuffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -2040,15 +2040,15 @@ eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer_(tvbuff_t *t
 static int
 eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer___);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer___);
 
        return offset;
 }
 
 static int
-eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer___(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_resultBuffer, 0);
+       proto_tree_add_bytes(tree, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_resultBuffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -2791,15 +2791,15 @@ eventlog6_dissect_element_EvtRpcMessageRender_eventId(tvbuff_t *tvb _U_, int off
 static int
 eventlog6_dissect_element_EvtRpcMessageRender_eventId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRender_eventId__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRender_eventId__);
 
        return offset;
 }
 
 static int
-eventlog6_dissect_element_EvtRpcMessageRender_eventId__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+eventlog6_dissect_element_EvtRpcMessageRender_eventId__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRender_eventId, 0);
+       proto_tree_add_bytes(tree, hf_eventlog6_eventlog6_EvtRpcMessageRender_eventId, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -2895,15 +2895,15 @@ eventlog6_dissect_element_EvtRpcMessageRender_string_(tvbuff_t *tvb _U_, int off
 static int
 eventlog6_dissect_element_EvtRpcMessageRender_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRender_string___);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRender_string___);
 
        return offset;
 }
 
 static int
-eventlog6_dissect_element_EvtRpcMessageRender_string___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+eventlog6_dissect_element_EvtRpcMessageRender_string___(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRender_string, 0);
+       proto_tree_add_bytes(tree, hf_eventlog6_eventlog6_EvtRpcMessageRender_string, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3004,15 +3004,15 @@ eventlog6_dissect_element_EvtRpcMessageRenderDefault_eventId(tvbuff_t *tvb _U_,
 static int
 eventlog6_dissect_element_EvtRpcMessageRenderDefault_eventId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRenderDefault_eventId__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRenderDefault_eventId__);
 
        return offset;
 }
 
 static int
-eventlog6_dissect_element_EvtRpcMessageRenderDefault_eventId__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_eventId__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_eventId, 0);
+       proto_tree_add_bytes(tree, hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_eventId, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3108,15 +3108,15 @@ eventlog6_dissect_element_EvtRpcMessageRenderDefault_string_(tvbuff_t *tvb _U_,
 static int
 eventlog6_dissect_element_EvtRpcMessageRenderDefault_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRenderDefault_string___);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRenderDefault_string___);
 
        return offset;
 }
 
 static int
-eventlog6_dissect_element_EvtRpcMessageRenderDefault_string___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_string___(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_string, 0);
+       proto_tree_add_bytes(tree, hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_string, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3350,15 +3350,15 @@ eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer_(tvbuff_t *tvb _U_, int o
 static int
 eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer___);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer___);
 
        return offset;
 }
 
 static int
-eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer___(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcQueryNext_resultBuffer, 0);
+       proto_tree_add_bytes(tree, hf_eventlog6_eventlog6_EvtRpcQueryNext_resultBuffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3888,15 +3888,15 @@ eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBuffer(tvbuff_t *tvb
 static int
 eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBuffer__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBuffer__);
 
        return offset;
 }
 
 static int
-eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBuffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBuffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_propertyValueBuffer, 0);
+       proto_tree_add_bytes(tree, hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_propertyValueBuffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -5069,7 +5069,7 @@ void proto_register_dcerpc_eventlog6(void)
        { &hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_handle,
          { "Handle", "eventlog6.eventlog6_EvtRpcRegisterLogQuery.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_propertyValueBuffer,
-         { "Propertyvaluebuffer", "eventlog6.eventlog6_EvtRpcGetLogFileInfo.propertyValueBuffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Propertyvaluebuffer", "eventlog6.eventlog6_EvtRpcGetLogFileInfo.propertyValueBuffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcQuerySeek_bookmarkXml,
          { "Bookmarkxml", "eventlog6.eventlog6_EvtRpcQuerySeek.bookmarkXml", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcMessageRender_values,
@@ -5169,7 +5169,7 @@ void proto_register_dcerpc_eventlog6(void)
        { &hf_eventlog6_eventlog6_EvtRpcGetNextEventMetadata_numReturned,
          { "Numreturned", "eventlog6.eventlog6_EvtRpcGetNextEventMetadata.numReturned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_eventId,
-         { "Eventid", "eventlog6.eventlog6_EvtRpcMessageRenderDefault.eventId", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Eventid", "eventlog6.eventlog6_EvtRpcMessageRenderDefault.eventId", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcMessageRender_error,
          { "Error", "eventlog6.eventlog6_EvtRpcMessageRender.error", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_query,
@@ -5179,7 +5179,7 @@ void proto_register_dcerpc_eventlog6(void)
        { &hf_eventlog6_eventlog6_EvtRpcQuerySeek_logQuery,
          { "Logquery", "eventlog6.eventlog6_EvtRpcQuerySeek.logQuery", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcQueryNext_resultBuffer,
-         { "Resultbuffer", "eventlog6.eventlog6_EvtRpcQueryNext.resultBuffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Resultbuffer", "eventlog6.eventlog6_EvtRpcQueryNext.resultBuffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_logHandle,
          { "Loghandle", "eventlog6.eventlog6_EvtRpcGetLogFileInfo.logHandle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcPutChannelConfig_channelPath,
@@ -5241,7 +5241,7 @@ void proto_register_dcerpc_eventlog6(void)
        { &hf_eventlog6_eventlog6_EvtRpcMessageRender_messageId,
          { "Messageid", "eventlog6.eventlog6_EvtRpcMessageRender.messageId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_resultBuffer,
-         { "Resultbuffer", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNextAsync.resultBuffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Resultbuffer", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNextAsync.resultBuffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcVariantUnion_boolean8Val,
          { "Boolean8val", "eventlog6.eventlog6_EvtRpcVariantUnion.boolean8Val", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcLocalizeExportLog_locale,
@@ -5249,7 +5249,7 @@ void proto_register_dcerpc_eventlog6(void)
        { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_numActualRecords,
          { "Numactualrecords", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNextAsync.numActualRecords", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcMessageRender_string,
-         { "String", "eventlog6.eventlog6_EvtRpcMessageRender.string", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "String", "eventlog6.eventlog6_EvtRpcMessageRender.string", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcGetPublisherListForChannel_numPublisherIds,
          { "Numpublisherids", "eventlog6.eventlog6_EvtRpcGetPublisherListForChannel.numPublisherIds", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcOpenLogHandle_handle,
@@ -5285,7 +5285,7 @@ void proto_register_dcerpc_eventlog6(void)
        { &hf_eventlog6_eventlog6_EvtRpcGetClassicLogDisplayName_locale,
          { "Locale", "eventlog6.eventlog6_EvtRpcGetClassicLogDisplayName.locale", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_string,
-         { "String", "eventlog6.eventlog6_EvtRpcMessageRenderDefault.string", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "String", "eventlog6.eventlog6_EvtRpcMessageRenderDefault.string", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcQuerySeek_timeOut,
          { "Timeout", "eventlog6.eventlog6_EvtRpcQuerySeek.timeOut", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcPutChannelConfig_error,
@@ -5301,7 +5301,7 @@ void proto_register_dcerpc_eventlog6(void)
        { &hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_query,
          { "Query", "eventlog6.eventlog6_EvtRpcRegisterRemoteSubscription.query", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcMessageRender_eventId,
-         { "Eventid", "eventlog6.eventlog6_EvtRpcMessageRender.eventId", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Eventid", "eventlog6.eventlog6_EvtRpcMessageRender.eventId", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcGetPublisherListForChannel_flags,
          { "Flags", "eventlog6.eventlog6_EvtRpcGetPublisherListForChannel.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_channelPath,
@@ -5381,9 +5381,9 @@ void proto_register_dcerpc_eventlog6(void)
        { &hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_neededSizeString,
          { "Neededsizestring", "eventlog6.eventlog6_EvtRpcMessageRenderDefault.neededSizeString", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_resultBuffer,
-         { "Resultbuffer", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNext.resultBuffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Resultbuffer", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNext.resultBuffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_boolean8Array_ptr,
-         { "Ptr", "eventlog6.eventlog6_boolean8Array.ptr", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Ptr", "eventlog6.eventlog6_boolean8Array.ptr", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcClearLog_flags,
          { "Flags", "eventlog6.eventlog6_EvtRpcClearLog.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_resultBufferSize,
index 42f40e020290515a70ae88aa305a5161cc675d23..407af26c66bfa5f7c059d456711f8add5a081922 100644 (file)
@@ -475,7 +475,7 @@ const value_string frsrpc_frsrpc_CommPktDataExtensionType_vals[] = {
 static int frsrpc_dissect_element_CommPktDataExtensionChecksum_prefix_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frsrpc_dissect_element_CommPktDataExtensionChecksum_prefix_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frsrpc_dissect_element_CommPktDataExtensionChecksum_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int frsrpc_dissect_element_CommPktDataExtensionChecksum_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktDataExtensionChecksum_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_prefix_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_prefix_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1813,17 +1813,19 @@ frsrpc_dissect_element_CommPktDataExtensionChecksum_prefix_type(tvbuff_t *tvb _U
 static int
 frsrpc_dissect_element_CommPktDataExtensionChecksum_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 16; i++)
-               offset = frsrpc_dissect_element_CommPktDataExtensionChecksum_data_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = frsrpc_dissect_element_CommPktDataExtensionChecksum_data_(tvb, offset, 16, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-frsrpc_dissect_element_CommPktDataExtensionChecksum_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+frsrpc_dissect_element_CommPktDataExtensionChecksum_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_data, 0);
+       proto_tree_add_bytes(tree, hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3811,7 +3813,7 @@ void proto_register_dcerpc_frsrpc(void)
        { &hf_frsrpc_frsrpc_CommPktChunkData_to,
          { "To", "frsrpc.frsrpc_CommPktChunkData.to", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_data,
-         { "Data", "frsrpc.frsrpc_CommPktDataExtensionChecksum.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "frsrpc.frsrpc_CommPktDataExtensionChecksum.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MORPH_GEN_HEAD,
          { "Frsrpc Co Flag Morph Gen Head", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_MORPH_GEN_HEAD", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MORPH_GEN_HEAD_tfs), ( 0x00400000 ), NULL, HFILL }},
        { &hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_major,
index 7121412c4a63672ec210fabefdee776a867efe0f..365d081031f46e09fc0a00f43464eebb18426feb 100644 (file)
@@ -189,9 +189,9 @@ static int frstrans_dissect_element_Update_clock(tvbuff_t *tvb _U_, int offset _
 static int frstrans_dissect_element_Update_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstrans_dissect_element_Update_content_set_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstrans_dissect_element_Update_sha1_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int frstrans_dissect_element_Update_sha1_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_sha1_hash_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstrans_dissect_element_Update_rdc_similarity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int frstrans_dissect_element_Update_rdc_similarity_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_rdc_similarity_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstrans_dissect_element_Update_uid_db_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstrans_dissect_element_Update_uid_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstrans_dissect_element_Update_gsvn_db_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -247,7 +247,7 @@ const value_string frstrans_frstrans_RdcChunckerAlgorithm_vals[] = {
 };
 static int frstrans_dissect_element_RdcParameterGeneric_chunker_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstrans_dissect_element_RdcParameterGeneric_chunker_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int frstrans_dissect_element_RdcParameterGeneric_chunker_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcParameterGeneric_chunker_parameters_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstrans_dissect_element_RdcParameterFilterMax_min_horizon_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstrans_dissect_element_RdcParameterFilterMax_max_window_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstrans_dissect_element_RdcParameterFilterPoint_min_chunk_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -332,7 +332,7 @@ static int frstrans_dissect_element_InitializeFileTransferAsync_rdc_file_info_(t
 static int frstrans_dissect_element_InitializeFileTransferAsync_rdc_file_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstrans_dissect_element_InitializeFileTransferAsync_data_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstrans_dissect_element_InitializeFileTransferAsync_data_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int frstrans_dissect_element_InitializeFileTransferAsync_data_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_InitializeFileTransferAsync_data_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstrans_dissect_element_InitializeFileTransferAsync_buffer_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstrans_dissect_element_InitializeFileTransferAsync_size_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstrans_dissect_element_InitializeFileTransferAsync_size_read_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -593,17 +593,19 @@ frstrans_dissect_element_Update_content_set_guid(tvbuff_t *tvb _U_, int offset _
 static int
 frstrans_dissect_element_Update_sha1_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 20; i++)
-               offset = frstrans_dissect_element_Update_sha1_hash_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = frstrans_dissect_element_Update_sha1_hash_(tvb, offset, 20, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-frstrans_dissect_element_Update_sha1_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+frstrans_dissect_element_Update_sha1_hash_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_Update_sha1_hash, 0);
+       proto_tree_add_bytes(tree, hf_frstrans_frstrans_Update_sha1_hash, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -611,17 +613,19 @@ frstrans_dissect_element_Update_sha1_hash_(tvbuff_t *tvb _U_, int offset _U_, pa
 static int
 frstrans_dissect_element_Update_rdc_similarity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 16; i++)
-               offset = frstrans_dissect_element_Update_rdc_similarity_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = frstrans_dissect_element_Update_rdc_similarity_(tvb, offset, 16, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-frstrans_dissect_element_Update_rdc_similarity_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+frstrans_dissect_element_Update_rdc_similarity_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_Update_rdc_similarity, 0);
+       proto_tree_add_bytes(tree, hf_frstrans_frstrans_Update_rdc_similarity, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1171,17 +1175,19 @@ frstrans_dissect_element_RdcParameterGeneric_chunker_type(tvbuff_t *tvb _U_, int
 static int
 frstrans_dissect_element_RdcParameterGeneric_chunker_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 64; i++)
-               offset = frstrans_dissect_element_RdcParameterGeneric_chunker_parameters_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = frstrans_dissect_element_RdcParameterGeneric_chunker_parameters_(tvb, offset, 64, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-frstrans_dissect_element_RdcParameterGeneric_chunker_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+frstrans_dissect_element_RdcParameterGeneric_chunker_parameters_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RdcParameterGeneric_chunker_parameters, 0);
+       proto_tree_add_bytes(tree, hf_frstrans_frstrans_RdcParameterGeneric_chunker_parameters, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -2420,15 +2426,15 @@ frstrans_dissect_element_InitializeFileTransferAsync_data_buffer(tvbuff_t *tvb _
 static int
 frstrans_dissect_element_InitializeFileTransferAsync_data_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_InitializeFileTransferAsync_data_buffer__);
+       offset = dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_InitializeFileTransferAsync_data_buffer__);
 
        return offset;
 }
 
 static int
-frstrans_dissect_element_InitializeFileTransferAsync_data_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+frstrans_dissect_element_InitializeFileTransferAsync_data_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_InitializeFileTransferAsync_data_buffer, 0);
+       proto_tree_add_bytes(tree, hf_frstrans_frstrans_InitializeFileTransferAsync_data_buffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -2731,7 +2737,7 @@ void proto_register_dcerpc_frstrans(void)
        { &hf_frstrans_frstrans_RawGetFileDataAsync_byte_pipe,
          { "Byte Pipe", "frstrans.frstrans_RawGetFileDataAsync.byte_pipe", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_frstrans_frstrans_Update_sha1_hash,
-         { "Sha1 Hash", "frstrans.frstrans_Update.sha1_hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Sha1 Hash", "frstrans.frstrans_Update.sha1_hash", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_frstrans_frstrans_RequestVersionVector_change_type,
          { "Change Type", "frstrans.frstrans_RequestVersionVector.change_type", FT_UINT1632, BASE_DEC, VALS(frstrans_frstrans_VersionChangeType_vals), 0, NULL, HFILL }},
        { &hf_frstrans_frstrans_AsyncVersionVectorResponse_version_vector,
@@ -2769,7 +2775,7 @@ void proto_register_dcerpc_frstrans(void)
        { &hf_frstrans_frstrans_EstablishConnection_downstream_flags,
          { "Downstream Flags", "frstrans.frstrans_EstablishConnection.downstream_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
        { &hf_frstrans_frstrans_RdcParameterGeneric_chunker_parameters,
-         { "Chunker Parameters", "frstrans.frstrans_RdcParameterGeneric.chunker_parameters", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Chunker Parameters", "frstrans.frstrans_RdcParameterGeneric.chunker_parameters", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_frstrans_frstrans_RdcFileInfo_compression_algorithm,
          { "Compression Algorithm", "frstrans.frstrans_RdcFileInfo.compression_algorithm", FT_UINT1632, BASE_DEC, VALS(frstrans_frstrans_RdcCompressionAlgorithm_vals), 0, NULL, HFILL }},
        { &hf_frstrans_frstrans_Update_flags,
@@ -2811,7 +2817,7 @@ void proto_register_dcerpc_frstrans(void)
        { &hf_frstrans_frstrans_AsyncResponseContext_sequence_number,
          { "Sequence Number", "frstrans.frstrans_AsyncResponseContext.sequence_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_frstrans_frstrans_InitializeFileTransferAsync_data_buffer,
-         { "Data Buffer", "frstrans.frstrans_InitializeFileTransferAsync.data_buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data Buffer", "frstrans.frstrans_InitializeFileTransferAsync.data_buffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_frstrans_frstrans_RequestVersionVector_request_type,
          { "Request Type", "frstrans.frstrans_RequestVersionVector.request_type", FT_UINT1632, BASE_DEC, VALS(frstrans_frstrans_VersionRequestType_vals), 0, NULL, HFILL }},
        { &hf_frstrans_frstrans_Update_present,
@@ -2835,7 +2841,7 @@ void proto_register_dcerpc_frstrans(void)
        { &hf_frstrans_frstrans_RequestUpdates_update_count,
          { "Update Count", "frstrans.frstrans_RequestUpdates.update_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_frstrans_frstrans_Update_rdc_similarity,
-         { "Rdc Similarity", "frstrans.frstrans_Update.rdc_similarity", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Rdc Similarity", "frstrans.frstrans_Update.rdc_similarity", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_frstrans_frstrans_AsyncPoll_response,
          { "Response", "frstrans.frstrans_AsyncPoll.response", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_frstrans_frstrans_RequestUpdates_version_vector_diff,
index f82c831945e1dfd58317c39458702f62de4263a6..202dc99d2dd5c9f30b3396176d37de7659e875de 100644 (file)
@@ -55,13 +55,13 @@ static e_uuid_t uuid_dcerpc_frstransblobs = {
 static guint16 ver_dcerpc_frstransblobs = 0;
 
 static int frstransblobs_dissect_element_compressedBlock_Block_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int frstransblobs_dissect_element_compressedBlock_Block_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstransblobs_dissect_element_compressedBlock_Block_Signature_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstransblobs_dissect_element_compressedBlock_compressed_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstransblobs_dissect_element_compressedBlock_uncompressed_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstransblobs_dissect_element_compressedBlock_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstransblobs_dissect_element_compressedBlock_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstransblobs_dissect_element_compressedDataFormat_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int frstransblobs_dissect_element_compressedDataFormat_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstransblobs_dissect_element_compressedDataFormat_Signature_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstransblobs_dissect_element_compressedDataFormat_block(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int frstransblobs_dissect_element_decode_compressedDataFormat_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 
@@ -76,17 +76,19 @@ static int frstransblobs_dissect_element_decode_compressedDataFormat_data(tvbuff
 static int
 frstransblobs_dissect_element_compressedBlock_Block_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 4; i++)
-               offset = frstransblobs_dissect_element_compressedBlock_Block_Signature_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = frstransblobs_dissect_element_compressedBlock_Block_Signature_(tvb, offset, 4, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-frstransblobs_dissect_element_compressedBlock_Block_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+frstransblobs_dissect_element_compressedBlock_Block_Signature_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frstransblobs_compressedBlock_Block_Signature, 0);
+       proto_tree_add_bytes(tree, hf_frstransblobs_compressedBlock_Block_Signature, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -166,17 +168,19 @@ frstransblobs_dissect_struct_compressedBlock(tvbuff_t *tvb _U_, int offset _U_,
 static int
 frstransblobs_dissect_element_compressedDataFormat_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 4; i++)
-               offset = frstransblobs_dissect_element_compressedDataFormat_Signature_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = frstransblobs_dissect_element_compressedDataFormat_Signature_(tvb, offset, 4, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-frstransblobs_dissect_element_compressedDataFormat_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+frstransblobs_dissect_element_compressedDataFormat_Signature_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frstransblobs_compressedDataFormat_Signature, 0);
+       proto_tree_add_bytes(tree, hf_frstransblobs_compressedDataFormat_Signature, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -259,7 +263,7 @@ void proto_register_dcerpc_frstransblobs(void)
 {
        static hf_register_info hf[] = {
        { &hf_frstransblobs_compressedBlock_Block_Signature,
-         { "Block Signature", "frstransblobs.compressedBlock.Block_Signature", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Block Signature", "frstransblobs.compressedBlock.Block_Signature", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_frstransblobs_decode_compressedDataFormat_data,
          { "Data", "frstransblobs.decode_compressedDataFormat.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_frstransblobs_compressedDataFormat_block,
@@ -269,7 +273,7 @@ void proto_register_dcerpc_frstransblobs(void)
        { &hf_frstransblobs_compressedBlock_compressed_size,
          { "Compressed Size", "frstransblobs.compressedBlock.compressed_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_frstransblobs_compressedDataFormat_Signature,
-         { "Signature", "frstransblobs.compressedDataFormat.Signature", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Signature", "frstransblobs.compressedDataFormat.Signature", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_frstransblobs_compressedBlock_data,
          { "Data", "frstransblobs.compressedBlock.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_frstransblobs_opnum,
index f9ac39014d2dd393e5236e001ba67d3893a8b2a7..103c4cb1f8e6c7240f2410c850a044057b547725 100644 (file)
@@ -97,7 +97,7 @@ static int FileServerVssAgent_dissect_element_fssagent_share_mapping_1_tstamp(tv
 static int FileServerVssAgent_dissect_element_fssagent_share_mapping_ShareMapping1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int FileServerVssAgent_dissect_element_fssagent_share_mapping_ShareMapping1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int FileServerVssAgent_dissect_element_fss_GetSupportedVersion_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int FileServerVssAgent_dissect_element_fss_GetSupportedVersion_magic_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_GetSupportedVersion_magic_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int FileServerVssAgent_dissect_element_fss_GetSupportedVersion_MinVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int FileServerVssAgent_dissect_element_fss_GetSupportedVersion_MinVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int FileServerVssAgent_dissect_element_fss_GetSupportedVersion_MaxVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -121,7 +121,7 @@ static int FileServerVssAgent_dissect_element_fss_AbortShadowCopySet_ShadowCopyS
 static int FileServerVssAgent_dissect_element_fss_IsPathSupported_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int FileServerVssAgent_dissect_element_fss_IsPathSupported_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int FileServerVssAgent_dissect_element_fss_IsPathSupported_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int FileServerVssAgent_dissect_element_fss_IsPathSupported_magic_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_IsPathSupported_magic_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int FileServerVssAgent_dissect_element_fss_IsPathSupported_SupportedByThisProvider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int FileServerVssAgent_dissect_element_fss_IsPathSupported_SupportedByThisProvider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int FileServerVssAgent_dissect_element_fss_IsPathSupported_OwnerMachineName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -311,17 +311,19 @@ FileServerVssAgent_dissect_fssagent_share_mapping(tvbuff_t *tvb _U_, int offset
 static int
 FileServerVssAgent_dissect_element_fss_GetSupportedVersion_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 52; i++)
-               offset = FileServerVssAgent_dissect_element_fss_GetSupportedVersion_magic_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = FileServerVssAgent_dissect_element_fss_GetSupportedVersion_magic_(tvb, offset, 52, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-FileServerVssAgent_dissect_element_fss_GetSupportedVersion_magic_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+FileServerVssAgent_dissect_element_fss_GetSupportedVersion_magic_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_GetSupportedVersion_magic, 0);
+       proto_tree_add_bytes(tree, hf_FileServerVssAgent_fss_GetSupportedVersion_magic, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -747,17 +749,19 @@ FileServerVssAgent_dissect_element_fss_IsPathSupported_ShareName_(tvbuff_t *tvb
 static int
 FileServerVssAgent_dissect_element_fss_IsPathSupported_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 52; i++)
-               offset = FileServerVssAgent_dissect_element_fss_IsPathSupported_magic_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = FileServerVssAgent_dissect_element_fss_IsPathSupported_magic_(tvb, offset, 52, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-FileServerVssAgent_dissect_element_fss_IsPathSupported_magic_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+FileServerVssAgent_dissect_element_fss_IsPathSupported_magic_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_IsPathSupported_magic, 0);
+       proto_tree_add_bytes(tree, hf_FileServerVssAgent_fss_IsPathSupported_magic, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1172,7 +1176,7 @@ void proto_register_dcerpc_FileServerVssAgent(void)
 {
        static hf_register_info hf[] = {
        { &hf_FileServerVssAgent_fss_IsPathSupported_magic,
-         { "Magic", "FileServerVssAgent.fss_IsPathSupported.magic", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Magic", "FileServerVssAgent.fss_IsPathSupported.magic", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_FileServerVssAgent_fss_ExposeShadowCopySet_ShadowCopySetId,
          { "Shadowcopysetid", "FileServerVssAgent.fss_ExposeShadowCopySet.ShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_FileServerVssAgent_fss_IsPathShadowCopied_ShadowCopyPresent,
@@ -1180,7 +1184,7 @@ void proto_register_dcerpc_FileServerVssAgent(void)
        { &hf_FileServerVssAgent_fss_AddToShadowCopySet_ClientShadowCopyId,
          { "Clientshadowcopyid", "FileServerVssAgent.fss_AddToShadowCopySet.ClientShadowCopyId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_FileServerVssAgent_fss_GetSupportedVersion_magic,
-         { "Magic", "FileServerVssAgent.fss_GetSupportedVersion.magic", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Magic", "FileServerVssAgent.fss_GetSupportedVersion.magic", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_FileServerVssAgent_fssagent_share_mapping_1_ShadowCopyId,
          { "Shadowcopyid", "FileServerVssAgent.fssagent_share_mapping_1.ShadowCopyId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_FileServerVssAgent_fssagent_share_mapping_1_ShadowCopyShareName,
index cb3da7a2b09190b513a7a32277defae357e1db73..f3347441c3005136749fc1f57c4200ee507029ee 100644 (file)
@@ -632,12 +632,12 @@ static int lsarpc_dissect_element_lsa_AsciiString_length(tvbuff_t *tvb _U_, int
 static int lsarpc_dissect_element_lsa_AsciiString_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_AsciiString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_AsciiString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int lsarpc_dissect_element_lsa_AsciiString_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AsciiString_string__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_AsciiStringLarge_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_AsciiStringLarge_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_AsciiStringLarge_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_AsciiStringLarge_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int lsarpc_dissect_element_lsa_AsciiStringLarge_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AsciiStringLarge_string__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_BinaryString_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_BinaryString_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_BinaryString_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -922,11 +922,11 @@ static int lsarpc_dissect_element_lsa_DATA_BUF_length(tvbuff_t *tvb _U_, int off
 static int lsarpc_dissect_element_lsa_DATA_BUF_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _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_, 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_, 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_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DATA_BUF_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_DATA_BUF2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_DATA_BUF2_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_DATA_BUF2_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int lsarpc_dissect_element_lsa_DATA_BUF2_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DATA_BUF2_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 const value_string lsarpc_lsa_TrustDomInfoEnum_vals[] = {
        { LSA_TRUSTED_DOMAIN_INFO_NAME, "LSA_TRUSTED_DOMAIN_INFO_NAME" },
        { LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS, "LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS" },
@@ -1040,7 +1040,7 @@ static int lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_info_ex(tvb
 static int lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 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_, guint8 *drep _U_);
 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_, guint8 *drep _U_);
-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_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo2Internal_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo2Internal_posix_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo2Internal_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1083,7 +1083,7 @@ static int lsarpc_dissect_element_lsa_DomainInfoKerberos_reserved(tvbuff_t *tvb
 static int lsarpc_dissect_element_lsa_DomainInfoEfs_blob_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 const value_string lsarpc_lsa_DomainInfoEnum_vals[] = {
        { LSA_DOMAIN_INFO_POLICY_EFS, "LSA_DOMAIN_INFO_POLICY_EFS" },
        { LSA_DOMAIN_INFO_POLICY_KERBEROS, "LSA_DOMAIN_INFO_POLICY_KERBEROS" },
@@ -1129,7 +1129,7 @@ static int lsarpc_dissect_element_lsa_TransSidArray3_sids__(tvbuff_t *tvb _U_, i
 static int lsarpc_dissect_element_lsa_ForestTrustBinaryData_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_ForestTrustBinaryData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_ForestTrustBinaryData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int lsarpc_dissect_element_lsa_ForestTrustBinaryData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustBinaryData_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_ForestTrustDomainInfo_domain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_ForestTrustDomainInfo_domain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int lsarpc_dissect_element_lsa_ForestTrustDomainInfo_dns_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1952,15 +1952,15 @@ lsarpc_dissect_element_lsa_AsciiString_string(tvbuff_t *tvb _U_, int offset _U_,
 static int
 lsarpc_dissect_element_lsa_AsciiString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_AsciiString_string__);
+       offset = dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_AsciiString_string__);
 
        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_, guint8 *drep _U_)
+lsarpc_dissect_element_lsa_AsciiString_string__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AsciiString_string, 0);
+       proto_tree_add_bytes(tree, hf_lsarpc_lsa_AsciiString_string, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -2033,15 +2033,15 @@ lsarpc_dissect_element_lsa_AsciiStringLarge_string(tvbuff_t *tvb _U_, int offset
 static int
 lsarpc_dissect_element_lsa_AsciiStringLarge_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_AsciiStringLarge_string__);
+       offset = dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_AsciiStringLarge_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_, guint8 *drep _U_)
+lsarpc_dissect_element_lsa_AsciiStringLarge_string__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AsciiStringLarge_string, 0);
+       proto_tree_add_bytes(tree, hf_lsarpc_lsa_AsciiStringLarge_string, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -4686,15 +4686,15 @@ lsarpc_dissect_element_lsa_DATA_BUF_data(tvbuff_t *tvb _U_, int offset _U_, pack
 static int
 lsarpc_dissect_element_lsa_DATA_BUF_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DATA_BUF_data__);
+       offset = dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DATA_BUF_data__);
 
        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_, guint8 *drep _U_)
+lsarpc_dissect_element_lsa_DATA_BUF_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DATA_BUF_data, 0);
+       proto_tree_add_bytes(tree, hf_lsarpc_lsa_DATA_BUF_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -4758,15 +4758,15 @@ lsarpc_dissect_element_lsa_DATA_BUF2_data(tvbuff_t *tvb _U_, int offset _U_, pac
 static int
 lsarpc_dissect_element_lsa_DATA_BUF2_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DATA_BUF2_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DATA_BUF2_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_, guint8 *drep _U_)
+lsarpc_dissect_element_lsa_DATA_BUF2_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DATA_BUF2_data, 0);
+       proto_tree_add_bytes(tree, hf_lsarpc_lsa_DATA_BUF2_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -5825,15 +5825,15 @@ lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data(tvbu
 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_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data__);
 
        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_, guint8 *drep _U_)
+lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data, 0);
+       proto_tree_add_bytes(tree, hf_lsarpc_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -6584,15 +6584,15 @@ lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob(tvbuff_t *tvb _U_, int offset
 static int
 lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob__);
 
        return offset;
 }
 
 static int
-lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DomainInfoEfs_efs_blob, 0);
+       proto_tree_add_bytes(tree, hf_lsarpc_lsa_DomainInfoEfs_efs_blob, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -7213,15 +7213,15 @@ lsarpc_dissect_element_lsa_ForestTrustBinaryData_data(tvbuff_t *tvb _U_, int off
 static int
 lsarpc_dissect_element_lsa_ForestTrustBinaryData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_ForestTrustBinaryData_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_ForestTrustBinaryData_data__);
 
        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_, guint8 *drep _U_)
+lsarpc_dissect_element_lsa_ForestTrustBinaryData_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ForestTrustBinaryData_data, 0);
+       proto_tree_add_bytes(tree, hf_lsarpc_lsa_ForestTrustBinaryData_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -14606,7 +14606,7 @@ void proto_register_dcerpc_lsarpc(void)
        { &hf_lsarpc_lsa_ForestTrustCollisionXrefFlags_LSA_NB_DISABLED_CONFLICT,
          { "Lsa Nb Disabled Conflict", "lsarpc.lsa_ForestTrustCollisionXrefFlags.LSA_NB_DISABLED_CONFLICT", FT_BOOLEAN, 32, TFS(&lsa_ForestTrustCollisionXrefFlags_LSA_NB_DISABLED_CONFLICT_tfs), ( 0x00000008 ), NULL, HFILL }},
        { &hf_lsarpc_lsa_DATA_BUF_data,
-         { "Data", "lsarpc.lsa_DATA_BUF.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "lsarpc.lsa_DATA_BUF.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_lsarpc_lsa_OpenTrustedDomainByName_name,
          { "Name", "lsarpc.lsa_OpenTrustedDomainByName.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_lsarpc_lsa_DomainListEx_count,
@@ -14632,7 +14632,7 @@ void proto_register_dcerpc_lsarpc(void)
        { &hf_lsarpc_lsa_ForestTrustRecord_type,
          { "Type", "lsarpc.lsa_ForestTrustRecord.type", FT_UINT32, BASE_DEC, VALS(lsarpc_lsa_ForestTrustRecordType_vals), 0, NULL, HFILL }},
        { &hf_lsarpc_lsa_DATA_BUF2_data,
-         { "Data", "lsarpc.lsa_DATA_BUF2.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "lsarpc.lsa_DATA_BUF2.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_SET_AUTH,
          { "Lsa Trusted Set Auth", "lsarpc.lsa_TrustedAccessMask.LSA_TRUSTED_SET_AUTH", FT_BOOLEAN, 32, TFS(&lsa_TrustedAccessMask_LSA_TRUSTED_SET_AUTH_tfs), ( 0x00000020 ), NULL, HFILL }},
        { &hf_lsarpc_lsa_RemoveAccountRights_handle,
@@ -14702,7 +14702,7 @@ void proto_register_dcerpc_lsarpc(void)
        { &hf_lsarpc_lsa_TrustDirection_LSA_TRUST_DIRECTION_INBOUND,
          { "Lsa Trust Direction Inbound", "lsarpc.lsa_TrustDirection.LSA_TRUST_DIRECTION_INBOUND", FT_BOOLEAN, 32, TFS(&lsa_TrustDirection_LSA_TRUST_DIRECTION_INBOUND_tfs), ( 0x00000001 ), NULL, HFILL }},
        { &hf_lsarpc_lsa_AsciiStringLarge_string,
-         { "String", "lsarpc.lsa_AsciiStringLarge.string", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "String", "lsarpc.lsa_AsciiStringLarge.string", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_lsarpc_lsa_LookupSids2_level,
          { "Level", "lsarpc.lsa_LookupSids2.level", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_LookupNamesLevel_vals), 0, NULL, HFILL }},
        { &hf_lsarpc_lsa_OpenSecret_sec_handle,
@@ -14740,7 +14740,7 @@ void proto_register_dcerpc_lsarpc(void)
        { &hf_lsarpc_lsa_LookupSids_handle,
          { "Handle", "lsarpc.lsa_LookupSids.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_lsarpc_lsa_AsciiString_string,
-         { "String", "lsarpc.lsa_AsciiString.string", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "String", "lsarpc.lsa_AsciiString.string", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_lsarpc_lsa_TrustedDomainInfo_info_ex,
          { "Info Ex", "lsarpc.lsa_TrustedDomainInfo.info_ex", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_lsarpc_lsa_CreateTrustedDomainEx2_trustdom_handle,
@@ -14834,7 +14834,7 @@ void proto_register_dcerpc_lsarpc(void)
        { &hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_CONTROLLERS,
          { "Lsa Trusted Query Controllers", "lsarpc.lsa_TrustedAccessMask.LSA_TRUSTED_QUERY_CONTROLLERS", FT_BOOLEAN, 32, TFS(&lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_CONTROLLERS_tfs), ( 0x00000002 ), NULL, HFILL }},
        { &hf_lsarpc_lsa_ForestTrustBinaryData_data,
-         { "Data", "lsarpc.lsa_ForestTrustBinaryData.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "lsarpc.lsa_ForestTrustBinaryData.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS,
          { "Lsa Account Adjust System Access", "lsarpc.lsa_AccountAccessMask.LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS", FT_BOOLEAN, 32, TFS(&lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS_tfs), ( 0x00000008 ), NULL, HFILL }},
        { &hf_lsarpc_lsa_TranslatedSid_sid_index,
@@ -15092,7 +15092,7 @@ void proto_register_dcerpc_lsarpc(void)
        { &hf_lsarpc_lsa_TranslatedName2_unknown,
          { "Unknown", "lsarpc.lsa_TranslatedName2.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_lsarpc_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data,
-         { "Forest Trust Data", "lsarpc.lsa_TrustDomainInfoInfoEx2Internal.forest_trust_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Forest Trust Data", "lsarpc.lsa_TrustDomainInfoInfoEx2Internal.forest_trust_data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_lsarpc_lsa_CreateTrustedDomain_access_mask,
          { "Access Mask", "lsarpc.lsa_CreateTrustedDomain.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
        { &hf_lsarpc_lsa_DomainInfoKerberos_reserved,
@@ -15204,7 +15204,7 @@ void proto_register_dcerpc_lsarpc(void)
        { &hf_lsarpc_lsa_TranslatedSid_rid,
          { "Rid", "lsarpc.lsa_TranslatedSid.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_lsarpc_lsa_DomainInfoEfs_efs_blob,
-         { "Efs Blob", "lsarpc.lsa_DomainInfoEfs.efs_blob", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Efs Blob", "lsarpc.lsa_DomainInfoEfs.efs_blob", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_lsarpc_lsa_RemovePrivilegesFromAccount_remove_all,
          { "Remove All", "lsarpc.lsa_RemovePrivilegesFromAccount.remove_all", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_lsarpc_lsa_SecretAccessMask_LSA_SECRET_QUERY_VALUE,
index 1768015f8719ccf044c77177d34adac4d3512ecf..873f59eb4e09dd48fd0fc7f0127da7e9714d7a0e 100644 (file)
@@ -99,9 +99,9 @@ static int misc_dissect_element_GUID_time_low(tvbuff_t *tvb _U_, int offset _U_,
 static int misc_dissect_element_GUID_time_mid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int misc_dissect_element_GUID_time_hi_and_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int misc_dissect_element_GUID_clock_seq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int misc_dissect_element_GUID_clock_seq_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_GUID_clock_seq_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int misc_dissect_element_GUID_node(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int misc_dissect_element_GUID_node_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_GUID_node_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int misc_dissect_element_ndr_syntax_id_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int misc_dissect_element_ndr_syntax_id_if_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int misc_dissect_element_policy_handle_handle_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -293,17 +293,19 @@ misc_dissect_element_GUID_time_hi_and_version(tvbuff_t *tvb _U_, int offset _U_,
 static int
 misc_dissect_element_GUID_clock_seq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 2; i++)
-               offset = misc_dissect_element_GUID_clock_seq_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = misc_dissect_element_GUID_clock_seq_(tvb, offset, 2, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-misc_dissect_element_GUID_clock_seq_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+misc_dissect_element_GUID_clock_seq_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_misc_GUID_clock_seq, 0);
+       proto_tree_add_bytes(tree, hf_misc_GUID_clock_seq, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -311,17 +313,19 @@ misc_dissect_element_GUID_clock_seq_(tvbuff_t *tvb _U_, int offset _U_, packet_i
 static int
 misc_dissect_element_GUID_node(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 6; i++)
-               offset = misc_dissect_element_GUID_node_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = misc_dissect_element_GUID_node_(tvb, offset, 6, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-misc_dissect_element_GUID_node_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+misc_dissect_element_GUID_node_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_misc_GUID_node, 0);
+       proto_tree_add_bytes(tree, hf_misc_GUID_node, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1034,7 +1038,7 @@ void proto_register_dcerpc_misc(void)
        { &hf_misc_svcctl_ServerType_SV_TYPE_TIME_SOURCE,
          { "Sv Type Time Source", "misc.svcctl_ServerType.SV_TYPE_TIME_SOURCE", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_TIME_SOURCE_tfs), ( 0x00000020 ), NULL, HFILL }},
        { &hf_misc_GUID_node,
-         { "Node", "misc.GUID.node", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Node", "misc.GUID.node", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_misc_winreg_Data_string,
          { "String", "misc.winreg_Data.string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_misc_svcctl_ServerType_SV_TYPE_BACKUP_BROWSER,
@@ -1098,7 +1102,7 @@ void proto_register_dcerpc_misc(void)
        { &hf_misc_svcctl_ServerType_SV_TYPE_MASTER_BROWSER,
          { "Sv Type Master Browser", "misc.svcctl_ServerType.SV_TYPE_MASTER_BROWSER", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_MASTER_BROWSER_tfs), ( 0x00040000 ), NULL, HFILL }},
        { &hf_misc_GUID_clock_seq,
-         { "Clock Seq", "misc.GUID.clock_seq", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Clock Seq", "misc.GUID.clock_seq", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_misc_svcctl_ServerType_SV_TYPE_NT,
          { "Sv Type Nt", "misc.svcctl_ServerType.SV_TYPE_NT", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_NT_tfs), ( 0x00001000 ), NULL, HFILL }},
        { &hf_misc_ndr_syntax_id_if_version,
index 84d0c2776a8964ea6b8d105cd45874b52c8f49cd..d91f31b5acddfd7d5e8cd5bc32638635378b15ee 100644 (file)
@@ -87,7 +87,7 @@ static int named_pipe_auth_dissect_element_req_info4_session_info_(tvbuff_t *tvb
 static int named_pipe_auth_dissect_element_req_info_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int named_pipe_auth_dissect_element_req_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int named_pipe_auth_dissect_element_req_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int named_pipe_auth_dissect_element_req_magic_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_req_magic_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int named_pipe_auth_dissect_element_req_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
 static int named_pipe_auth_dissect_element_req_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
 static int named_pipe_auth_dissect_element_rep_info4_file_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -96,7 +96,7 @@ static int named_pipe_auth_dissect_element_rep_info4_allocation_size(tvbuff_t *t
 static int named_pipe_auth_dissect_element_rep_info_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int named_pipe_auth_dissect_element_rep_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int named_pipe_auth_dissect_element_rep_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int named_pipe_auth_dissect_element_rep_magic_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_rep_magic_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int named_pipe_auth_dissect_element_rep_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
 static int named_pipe_auth_dissect_element_rep_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
 static int named_pipe_auth_dissect_element_rep_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -321,17 +321,19 @@ named_pipe_auth_dissect_element_req_length(tvbuff_t *tvb _U_, int offset _U_, pa
 static int
 named_pipe_auth_dissect_element_req_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 4; i++)
-               offset = named_pipe_auth_dissect_element_req_magic_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = named_pipe_auth_dissect_element_req_magic_(tvb, offset, 4, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-named_pipe_auth_dissect_element_req_magic_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+named_pipe_auth_dissect_element_req_magic_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_named_pipe_auth_named_pipe_auth_req_magic, 0);
+       proto_tree_add_bytes(tree, hf_named_pipe_auth_named_pipe_auth_req_magic, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -514,17 +516,19 @@ named_pipe_auth_dissect_element_rep_length(tvbuff_t *tvb _U_, int offset _U_, pa
 static int
 named_pipe_auth_dissect_element_rep_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 4; i++)
-               offset = named_pipe_auth_dissect_element_rep_magic_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = named_pipe_auth_dissect_element_rep_magic_(tvb, offset, 4, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-named_pipe_auth_dissect_element_rep_magic_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+named_pipe_auth_dissect_element_rep_magic_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_named_pipe_auth_named_pipe_auth_rep_magic, 0);
+       proto_tree_add_bytes(tree, hf_named_pipe_auth_named_pipe_auth_rep_magic, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -621,9 +625,9 @@ void proto_register_dcerpc_named_pipe_auth(void)
        { &hf_named_pipe_auth_named_pipe_auth_req_info4_session_info,
          { "Session Info", "named_pipe_auth.named_pipe_auth_req_info4.session_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_named_pipe_auth_named_pipe_auth_rep_magic,
-         { "Magic", "named_pipe_auth.named_pipe_auth_rep.magic", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Magic", "named_pipe_auth.named_pipe_auth_rep.magic", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_named_pipe_auth_named_pipe_auth_req_magic,
-         { "Magic", "named_pipe_auth.named_pipe_auth_req.magic", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Magic", "named_pipe_auth.named_pipe_auth_req.magic", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_named_pipe_auth_named_pipe_auth_rep_level,
          { "Level", "named_pipe_auth.named_pipe_auth_rep.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_named_pipe_auth_named_pipe_auth_req_info4_server_port,
index 6d4076d1129840605502aae5f57dd3abf7bb46f9..992cddfc0801c6eb0afd24a95c4cdd30d0c25403 100644 (file)
@@ -527,7 +527,7 @@ static int nbt_dissect_element_rdata_netbios_length(tvbuff_t *tvb _U_, int offse
 static int nbt_dissect_element_rdata_netbios_addresses(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_rdata_netbios_addresses_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_statistics_unit_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int nbt_dissect_element_statistics_unit_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_unit_id_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_statistics_jumpers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_statistics_test_result(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_statistics_version_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -548,7 +548,7 @@ static int nbt_dissect_element_statistics_max_number_pending_sessions(tvbuff_t *
 static int nbt_dissect_element_statistics_max_total_sessions_possible(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_statistics_session_data_packet_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_status_name_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int nbt_dissect_element_status_name_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_status_name_name_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_status_name_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_status_name_nb_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_rdata_status_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -646,7 +646,7 @@ static int nbt_dissect_element_dgram_smb_packet_flags(tvbuff_t *tvb _U_, int off
 static int nbt_dissect_element_dgram_smb_packet_flags2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_dgram_smb_packet_pid_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_dgram_smb_packet_signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int nbt_dissect_element_dgram_smb_packet_signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_smb_packet_signature_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_dgram_smb_packet_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_dgram_smb_packet_tid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_dgram_smb_packet_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -919,7 +919,7 @@ const value_string nbt_nbt_browse_opcode_vals[] = {
 static int nbt_dissect_element_browse_host_announcement_UpdateCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_browse_host_announcement_Periodicity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_browse_host_announcement_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int nbt_dissect_element_browse_host_announcement_ServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_host_announcement_ServerName_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_browse_host_announcement_OSMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_browse_host_announcement_OSMinor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_browse_host_announcement_ServerType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -944,7 +944,7 @@ static int nbt_dissect_element_browse_become_backup_BrowserName(tvbuff_t *tvb _U
 static int nbt_dissect_element_browse_domain_announcement_UpdateCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_browse_domain_announcement_Periodicity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_browse_domain_announcement_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int nbt_dissect_element_browse_domain_announcement_ServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_domain_announcement_ServerName_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_browse_domain_announcement_OSMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_browse_domain_announcement_OSMinor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_browse_domain_announcement_ServerType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -955,7 +955,7 @@ static int nbt_dissect_element_browse_reset_state_Command(tvbuff_t *tvb _U_, int
 static int nbt_dissect_element_browse_local_master_announcement_UpdateCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_browse_local_master_announcement_Periodicity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_browse_local_master_announcement_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int nbt_dissect_element_browse_local_master_announcement_ServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_local_master_announcement_ServerName_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_browse_local_master_announcement_OSMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_browse_local_master_announcement_OSMinor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int nbt_dissect_element_browse_local_master_announcement_ServerType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1576,17 +1576,19 @@ nbt_dissect_struct_rdata_netbios(tvbuff_t *tvb _U_, int offset _U_, packet_info
 static int
 nbt_dissect_element_statistics_unit_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 6; i++)
-               offset = nbt_dissect_element_statistics_unit_id_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = nbt_dissect_element_statistics_unit_id_(tvb, offset, 6, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-nbt_dissect_element_statistics_unit_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+nbt_dissect_element_statistics_unit_id_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_unit_id, 0);
+       proto_tree_add_bytes(tree, hf_nbt_nbt_statistics_unit_id, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1821,17 +1823,19 @@ nbt_dissect_struct_statistics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi
 static int
 nbt_dissect_element_status_name_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 15; i++)
-               offset = nbt_dissect_element_status_name_name_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = nbt_dissect_element_status_name_name_(tvb, offset, 15, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-nbt_dissect_element_status_name_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+nbt_dissect_element_status_name_name_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_status_name_name, 0);
+       proto_tree_add_bytes(tree, hf_nbt_nbt_status_name_name, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -2872,17 +2876,19 @@ nbt_dissect_element_dgram_smb_packet_pid_high(tvbuff_t *tvb _U_, int offset _U_,
 static int
 nbt_dissect_element_dgram_smb_packet_signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 8; i++)
-               offset = nbt_dissect_element_dgram_smb_packet_signature_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = nbt_dissect_element_dgram_smb_packet_signature_(tvb, offset, 8, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-nbt_dissect_element_dgram_smb_packet_signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+nbt_dissect_element_dgram_smb_packet_signature_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_dgram_smb_packet_signature, 0);
+       proto_tree_add_bytes(tree, hf_nbt_dgram_smb_packet_signature, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -5373,17 +5379,19 @@ nbt_dissect_element_browse_host_announcement_Periodicity(tvbuff_t *tvb _U_, int
 static int
 nbt_dissect_element_browse_host_announcement_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 16; i++)
-               offset = nbt_dissect_element_browse_host_announcement_ServerName_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = nbt_dissect_element_browse_host_announcement_ServerName_(tvb, offset, 16, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-nbt_dissect_element_browse_host_announcement_ServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+nbt_dissect_element_browse_host_announcement_ServerName_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_host_announcement_ServerName, 0);
+       proto_tree_add_bytes(tree, hf_nbt_nbt_browse_host_announcement_ServerName, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -5833,17 +5841,19 @@ nbt_dissect_element_browse_domain_announcement_Periodicity(tvbuff_t *tvb _U_, in
 static int
 nbt_dissect_element_browse_domain_announcement_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 16; i++)
-               offset = nbt_dissect_element_browse_domain_announcement_ServerName_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = nbt_dissect_element_browse_domain_announcement_ServerName_(tvb, offset, 16, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-nbt_dissect_element_browse_domain_announcement_ServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+nbt_dissect_element_browse_domain_announcement_ServerName_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_domain_announcement_ServerName, 0);
+       proto_tree_add_bytes(tree, hf_nbt_nbt_browse_domain_announcement_ServerName, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -6045,17 +6055,19 @@ nbt_dissect_element_browse_local_master_announcement_Periodicity(tvbuff_t *tvb _
 static int
 nbt_dissect_element_browse_local_master_announcement_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 16; i++)
-               offset = nbt_dissect_element_browse_local_master_announcement_ServerName_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = nbt_dissect_element_browse_local_master_announcement_ServerName_(tvb, offset, 16, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-nbt_dissect_element_browse_local_master_announcement_ServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+nbt_dissect_element_browse_local_master_announcement_ServerName_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_local_master_announcement_ServerName, 0);
+       proto_tree_add_bytes(tree, hf_nbt_nbt_browse_local_master_announcement_ServerName, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -6577,7 +6589,7 @@ void proto_register_dcerpc_nbt(void)
        { &hf_nbt_NETLOGON_DB_CHANGE_unicode_pdc_name,
          { "Unicode Pdc Name", "nbt.NETLOGON_DB_CHANGE.unicode_pdc_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_nbt_nbt_status_name_name,
-         { "Name", "nbt.nbt_status_name.name", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Name", "nbt.nbt_status_name.name", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_nbt_smb_trans_body_param_count,
          { "Param Count", "nbt.smb_trans_body.param_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_nbt_nbt_operation_NBT_FLAG_RECURSION_DESIRED,
@@ -6657,7 +6669,7 @@ void proto_register_dcerpc_nbt(void)
        { &hf_nbt_dgram_smb_packet_tid,
          { "Tid", "nbt.dgram_smb_packet.tid", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_nbt_nbt_browse_host_announcement_ServerName,
-         { "Servername", "nbt.nbt_browse_host_announcement.ServerName", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Servername", "nbt.nbt_browse_host_announcement.ServerName", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_nbt_nbt_server_type_NBT_SERVER_GOOD_TIMESERV,
          { "Nbt Server Good Timeserv", "nbt.nbt_server_type.NBT_SERVER_GOOD_TIMESERV", FT_BOOLEAN, 32, TFS(&nbt_server_type_NBT_SERVER_GOOD_TIMESERV_tfs), ( 0x00000200 ), NULL, HFILL }},
        { &hf_nbt_nbt_browse_election_request_Version,
@@ -6705,7 +6717,7 @@ void proto_register_dcerpc_nbt(void)
        { &hf_nbt_nbt_rdata_netbios_addresses,
          { "Addresses", "nbt.nbt_rdata_netbios.addresses", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_nbt_nbt_browse_local_master_announcement_ServerName,
-         { "Servername", "nbt.nbt_browse_local_master_announcement.ServerName", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Servername", "nbt.nbt_browse_local_master_announcement.ServerName", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_nbt_nbt_browse_announcement_request_ResponseName,
          { "Responsename", "nbt.nbt_browse_announcement_request.ResponseName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_user_name,
@@ -6787,7 +6799,7 @@ void proto_register_dcerpc_nbt(void)
        { &hf_nbt_nbt_status_name_type,
          { "Type", "nbt.nbt_status_name.type", FT_UINT8, BASE_DEC, VALS(nbt_nbt_name_type_vals), 0, NULL, HFILL }},
        { &hf_nbt_dgram_smb_packet_signature,
-         { "Signature", "nbt.dgram_smb_packet.signature", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Signature", "nbt.dgram_smb_packet.signature", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_nbt_nbt_netlogon_response2_pdc_name,
          { "Pdc Name", "nbt.nbt_netlogon_response2.pdc_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_nbt_nbt_browse_payload_local_master_announcement,
@@ -6805,7 +6817,7 @@ void proto_register_dcerpc_nbt(void)
        { &hf_nbt_nbt_browse_domain_announcement_OSMinor,
          { "Osminor", "nbt.nbt_browse_domain_announcement.OSMinor", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_nbt_nbt_browse_domain_announcement_ServerName,
-         { "Servername", "nbt.nbt_browse_domain_announcement.ServerName", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Servername", "nbt.nbt_browse_domain_announcement.ServerName", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_nbt_nbt_browse_host_announcement_OSMinor,
          { "Osminor", "nbt.nbt_browse_host_announcement.OSMinor", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_nbt_nbt_dgram_packet_src_port,
@@ -6821,7 +6833,7 @@ void proto_register_dcerpc_nbt(void)
        { &hf_nbt_smb_trans_body_byte_count,
          { "Byte Count", "nbt.smb_trans_body.byte_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_nbt_nbt_statistics_unit_id,
-         { "Unit Id", "nbt.nbt_statistics.unit_id", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Unit Id", "nbt.nbt_statistics.unit_id", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_nbt_nbt_name_packet_nscount,
          { "Nscount", "nbt.nbt_name_packet.nscount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_nbt_NETLOGON_DB_CHANGE_pdc_name,
index fe5b9d4c97c0eb2389d6329dbf4188e63fde7b56..ca8bb72536aea355c0abf8e98d2450a4b3c976f1 100644 (file)
@@ -1167,10 +1167,10 @@ static int netlogon_dissect_element_netr_ChallengeResponse_length(tvbuff_t *tvb
 static int netlogon_dissect_element_netr_ChallengeResponse_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_ChallengeResponse_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_ChallengeResponse_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int netlogon_dissect_element_netr_ChallengeResponse_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ChallengeResponse_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_NetworkInfo_identity_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_NetworkInfo_challenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int netlogon_dissect_element_netr_NetworkInfo_challenge_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NetworkInfo_challenge_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_NetworkInfo_nt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_NetworkInfo_lm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_GenericInfo_identity_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1178,7 +1178,7 @@ static int netlogon_dissect_element_netr_GenericInfo_package_name(tvbuff_t *tvb
 static int netlogon_dissect_element_netr_GenericInfo_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_GenericInfo_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_GenericInfo_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int netlogon_dissect_element_netr_GenericInfo_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GenericInfo_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 const value_string netlogon_netr_LogonInfoClass_vals[] = {
        { NetlogonInteractiveInformation, "NetlogonInteractiveInformation" },
        { NetlogonNetworkInformation, "NetlogonNetworkInformation" },
@@ -1204,9 +1204,9 @@ static int netlogon_dissect_element_netr_LogonLevel_network_(tvbuff_t *tvb _U_,
 static int netlogon_dissect_element_netr_LogonLevel_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_LogonLevel_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_UserSessionKey_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int netlogon_dissect_element_netr_UserSessionKey_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UserSessionKey_key_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_LMSessionKey_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int netlogon_dissect_element_netr_LMSessionKey_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LMSessionKey_key_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static const true_false_string netr_UserFlags_NETLOGON_GUEST_tfs = {
    "NETLOGON_GUEST is SET",
    "NETLOGON_GUEST is NOT SET",
@@ -1302,14 +1302,14 @@ static int netlogon_dissect_element_netr_SamInfo6_unknown4_(tvbuff_t *tvb _U_, i
 static int netlogon_dissect_element_netr_PacInfo_pac_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_PacInfo_pac(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_PacInfo_pac_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int netlogon_dissect_element_netr_PacInfo_pac__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PacInfo_pac__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_PacInfo_logon_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_PacInfo_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_PacInfo_principal_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_PacInfo_auth_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_PacInfo_auth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_PacInfo_auth_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int netlogon_dissect_element_netr_PacInfo_auth__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PacInfo_auth__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_PacInfo_user_session_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_PacInfo_expansionroom(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_PacInfo_expansionroom_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1320,7 +1320,7 @@ static int netlogon_dissect_element_netr_PacInfo_unknown4(tvbuff_t *tvb _U_, int
 static int netlogon_dissect_element_netr_GenericInfo2_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_GenericInfo2_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_GenericInfo2_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int netlogon_dissect_element_netr_GenericInfo2_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GenericInfo2_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 const value_string netlogon_netr_ValidationInfoClass_vals[] = {
        { NetlogonValidationUasInfo, "NetlogonValidationUasInfo" },
        { NetlogonValidationSamInfo, "NetlogonValidationSamInfo" },
@@ -1340,7 +1340,7 @@ static int netlogon_dissect_element_netr_Validation_generic_(tvbuff_t *tvb _U_,
 static int netlogon_dissect_element_netr_Validation_sam6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_Validation_sam6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_Credential_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int netlogon_dissect_element_netr_Credential_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_Credential_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_Authenticator_cred(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_Authenticator_timestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 const value_string netlogon_netr_SchannelType_vals[] = {
@@ -1383,7 +1383,7 @@ static int netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveDataFlag(tvb
 static int netlogon_dissect_element_netr_USER_PRIVATE_INFO_DataLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveData__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_DELTA_USER_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_DELTA_USER_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_DELTA_USER_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1560,7 +1560,7 @@ static int netlogon_dissect_element_netr_CIPHER_VALUE_len(tvbuff_t *tvb _U_, int
 static int netlogon_dissect_element_netr_CIPHER_VALUE_maxlen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_CIPHER_VALUE_cipher_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_CIPHER_VALUE_cipher_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int netlogon_dissect_element_netr_CIPHER_VALUE_cipher_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CIPHER_VALUE_cipher_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_DELTA_SECRET_current_cipher(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_DELTA_SECRET_current_cipher_set_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_DELTA_SECRET_old_cipher(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1668,7 +1668,7 @@ static int netlogon_dissect_element_netr_DELTA_ENUM_ARRAY_delta_enum(tvbuff_t *t
 static int netlogon_dissect_element_netr_DELTA_ENUM_ARRAY_delta_enum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_DELTA_ENUM_ARRAY_delta_enum__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_UAS_INFO_0_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int netlogon_dissect_element_netr_UAS_INFO_0_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UAS_INFO_0_computer_name_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_UAS_INFO_0_timecreated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_UAS_INFO_0_serial_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_AccountBuffer_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1910,7 +1910,7 @@ static int netlogon_dissect_element_netr_ChangeLogEntry_object(tvbuff_t *tvb _U_
 static int netlogon_dissect_element_netr_Blob_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_Blob_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_Blob_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int netlogon_dissect_element_netr_Blob_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_Blob_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static const true_false_string netr_DsRGetDCName_flags_DS_FORCE_REDISCOVERY_tfs = {
    "DS_FORCE_REDISCOVERY is SET",
    "DS_FORCE_REDISCOVERY is NOT SET",
@@ -2183,7 +2183,7 @@ static const true_false_string netr_ProductType_NETR_VER_NT_WORKSTATION_tfs = {
 static int netlogon_dissect_element_netr_LsaPolicyInformation_policy_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_LsaPolicyInformation_policy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_LsaPolicyInformation_policy_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int netlogon_dissect_element_netr_LsaPolicyInformation_policy__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LsaPolicyInformation_policy__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_OsVersionInfoEx_OSVersionInfoSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_OsVersionInfoEx_MajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_OsVersionInfoEx_MinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -2296,7 +2296,7 @@ static int netlogon_dissect_element_NL_PASSWORD_VERSION_ReservedField(tvbuff_t *
 static int netlogon_dissect_element_NL_PASSWORD_VERSION_PasswordVersionNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_NL_PASSWORD_VERSION_PasswordVersionPresent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_CryptPassword_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int netlogon_dissect_element_netr_CryptPassword_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CryptPassword_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_CryptPassword_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_DsRAddressToSitenamesWCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_DsRAddressToSitenamesWCtr_sitename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -2304,7 +2304,7 @@ static int netlogon_dissect_element_netr_DsRAddressToSitenamesWCtr_sitename_(tvb
 static int netlogon_dissect_element_netr_DsRAddressToSitenamesWCtr_sitename__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_DsRAddress_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_DsRAddress_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int netlogon_dissect_element_netr_DsRAddress_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddress_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int netlogon_dissect_element_netr_DsRAddress_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 const value_string netlogon_netr_TrustType_vals[] = {
        { NETR_TRUST_TYPE_DOWNLEVEL, "NETR_TRUST_TYPE_DOWNLEVEL" },
@@ -3772,15 +3772,15 @@ netlogon_dissect_element_netr_ChallengeResponse_data(tvbuff_t *tvb _U_, int offs
 static int
 netlogon_dissect_element_netr_ChallengeResponse_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ChallengeResponse_data__);
+       offset = dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ChallengeResponse_data__);
 
        return offset;
 }
 
 static int
-netlogon_dissect_element_netr_ChallengeResponse_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+netlogon_dissect_element_netr_ChallengeResponse_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ChallengeResponse_data, 0);
+       proto_tree_add_bytes(tree, hf_netlogon_netr_ChallengeResponse_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3838,17 +3838,19 @@ netlogon_dissect_element_netr_NetworkInfo_identity_info(tvbuff_t *tvb _U_, int o
 static int
 netlogon_dissect_element_netr_NetworkInfo_challenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 8; i++)
-               offset = netlogon_dissect_element_netr_NetworkInfo_challenge_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = netlogon_dissect_element_netr_NetworkInfo_challenge_(tvb, offset, 8, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-netlogon_dissect_element_netr_NetworkInfo_challenge_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+netlogon_dissect_element_netr_NetworkInfo_challenge_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_NetworkInfo_challenge, 0);
+       proto_tree_add_bytes(tree, hf_netlogon_netr_NetworkInfo_challenge, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3948,15 +3950,15 @@ netlogon_dissect_element_netr_GenericInfo_data(tvbuff_t *tvb _U_, int offset _U_
 static int
 netlogon_dissect_element_netr_GenericInfo_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GenericInfo_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GenericInfo_data__);
 
        return offset;
 }
 
 static int
-netlogon_dissect_element_netr_GenericInfo_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+netlogon_dissect_element_netr_GenericInfo_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_GenericInfo_data, 0);
+       proto_tree_add_bytes(tree, hf_netlogon_netr_GenericInfo_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -4208,17 +4210,19 @@ netlogon_dissect_netr_LogonLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info
 static int
 netlogon_dissect_element_netr_UserSessionKey_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 16; i++)
-               offset = netlogon_dissect_element_netr_UserSessionKey_key_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = netlogon_dissect_element_netr_UserSessionKey_key_(tvb, offset, 16, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-netlogon_dissect_element_netr_UserSessionKey_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+netlogon_dissect_element_netr_UserSessionKey_key_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_UserSessionKey_key, 0);
+       proto_tree_add_bytes(tree, hf_netlogon_netr_UserSessionKey_key, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -4255,17 +4259,19 @@ netlogon_dissect_struct_netr_UserSessionKey(tvbuff_t *tvb _U_, int offset _U_, p
 static int
 netlogon_dissect_element_netr_LMSessionKey_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 8; i++)
-               offset = netlogon_dissect_element_netr_LMSessionKey_key_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = netlogon_dissect_element_netr_LMSessionKey_key_(tvb, offset, 8, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-netlogon_dissect_element_netr_LMSessionKey_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+netlogon_dissect_element_netr_LMSessionKey_key_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LMSessionKey_key, 0);
+       proto_tree_add_bytes(tree, hf_netlogon_netr_LMSessionKey_key, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -5038,9 +5044,11 @@ netlogon_dissect_element_netr_SamInfo6_principle(tvbuff_t *tvb _U_, int offset _
 static int
 netlogon_dissect_element_netr_SamInfo6_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 20; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = netlogon_dissect_element_netr_SamInfo6_unknown4_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -5129,15 +5137,15 @@ netlogon_dissect_element_netr_PacInfo_pac(tvbuff_t *tvb _U_, int offset _U_, pac
 static int
 netlogon_dissect_element_netr_PacInfo_pac_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_PacInfo_pac__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_PacInfo_pac__);
 
        return offset;
 }
 
 static int
-netlogon_dissect_element_netr_PacInfo_pac__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+netlogon_dissect_element_netr_PacInfo_pac__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_PacInfo_pac, 0);
+       proto_tree_add_bytes(tree, hf_netlogon_netr_PacInfo_pac, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -5185,15 +5193,15 @@ netlogon_dissect_element_netr_PacInfo_auth(tvbuff_t *tvb _U_, int offset _U_, pa
 static int
 netlogon_dissect_element_netr_PacInfo_auth_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_PacInfo_auth__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_PacInfo_auth__);
 
        return offset;
 }
 
 static int
-netlogon_dissect_element_netr_PacInfo_auth__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+netlogon_dissect_element_netr_PacInfo_auth__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_PacInfo_auth, 0);
+       proto_tree_add_bytes(tree, hf_netlogon_netr_PacInfo_auth, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -5209,9 +5217,11 @@ netlogon_dissect_element_netr_PacInfo_user_session_key(tvbuff_t *tvb _U_, int of
 static int
 netlogon_dissect_element_netr_PacInfo_expansionroom(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 10; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = netlogon_dissect_element_netr_PacInfo_expansionroom_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -5335,15 +5345,15 @@ netlogon_dissect_element_netr_GenericInfo2_data(tvbuff_t *tvb _U_, int offset _U
 static int
 netlogon_dissect_element_netr_GenericInfo2_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GenericInfo2_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GenericInfo2_data__);
 
        return offset;
 }
 
 static int
-netlogon_dissect_element_netr_GenericInfo2_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+netlogon_dissect_element_netr_GenericInfo2_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_GenericInfo2_data, 0);
+       proto_tree_add_bytes(tree, hf_netlogon_netr_GenericInfo2_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -5547,17 +5557,19 @@ netlogon_dissect_netr_Validation(tvbuff_t *tvb _U_, int offset _U_, packet_info
 static int
 netlogon_dissect_element_netr_Credential_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 8; i++)
-               offset = netlogon_dissect_element_netr_Credential_data_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = netlogon_dissect_element_netr_Credential_data_(tvb, offset, 8, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-netlogon_dissect_element_netr_Credential_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+netlogon_dissect_element_netr_Credential_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_Credential_data, 0);
+       proto_tree_add_bytes(tree, hf_netlogon_netr_Credential_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -6224,15 +6236,15 @@ netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveData(tvbuff_t *tvb _U_,
 static int
 netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveData__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveData__);
 
        return offset;
 }
 
 static int
-netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveData__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_USER_PRIVATE_INFO_SensitiveData, 0);
+       proto_tree_add_bytes(tree, hf_netlogon_netr_USER_PRIVATE_INFO_SensitiveData, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -8510,15 +8522,15 @@ netlogon_dissect_element_netr_CIPHER_VALUE_cipher_data(tvbuff_t *tvb _U_, int of
 static int
 netlogon_dissect_element_netr_CIPHER_VALUE_cipher_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_CIPHER_VALUE_cipher_data__);
+       offset = dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_CIPHER_VALUE_cipher_data__);
 
        return offset;
 }
 
 static int
-netlogon_dissect_element_netr_CIPHER_VALUE_cipher_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+netlogon_dissect_element_netr_CIPHER_VALUE_cipher_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_CIPHER_VALUE_cipher_data, 0);
+       proto_tree_add_bytes(tree, hf_netlogon_netr_CIPHER_VALUE_cipher_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -9690,17 +9702,19 @@ netlogon_dissect_struct_netr_DELTA_ENUM_ARRAY(tvbuff_t *tvb _U_, int offset _U_,
 static int
 netlogon_dissect_element_netr_UAS_INFO_0_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 16; i++)
-               offset = netlogon_dissect_element_netr_UAS_INFO_0_computer_name_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = netlogon_dissect_element_netr_UAS_INFO_0_computer_name_(tvb, offset, 16, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-netlogon_dissect_element_netr_UAS_INFO_0_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+netlogon_dissect_element_netr_UAS_INFO_0_computer_name_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_UAS_INFO_0_computer_name, 0);
+       proto_tree_add_bytes(tree, hf_netlogon_netr_UAS_INFO_0_computer_name, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -11121,15 +11135,15 @@ netlogon_dissect_element_netr_Blob_data(tvbuff_t *tvb _U_, int offset _U_, packe
 static int
 netlogon_dissect_element_netr_Blob_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_Blob_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_Blob_data__);
 
        return offset;
 }
 
 static int
-netlogon_dissect_element_netr_Blob_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+netlogon_dissect_element_netr_Blob_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_Blob_data, 0);
+       proto_tree_add_bytes(tree, hf_netlogon_netr_Blob_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -12191,15 +12205,15 @@ netlogon_dissect_element_netr_LsaPolicyInformation_policy(tvbuff_t *tvb _U_, int
 static int
 netlogon_dissect_element_netr_LsaPolicyInformation_policy_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LsaPolicyInformation_policy__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LsaPolicyInformation_policy__);
 
        return offset;
 }
 
 static int
-netlogon_dissect_element_netr_LsaPolicyInformation_policy__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+netlogon_dissect_element_netr_LsaPolicyInformation_policy__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LsaPolicyInformation_policy, 0);
+       proto_tree_add_bytes(tree, hf_netlogon_netr_LsaPolicyInformation_policy, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -13655,17 +13669,19 @@ netlogon_dissect_struct_NL_PASSWORD_VERSION(tvbuff_t *tvb _U_, int offset _U_, p
 static int
 netlogon_dissect_element_netr_CryptPassword_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 512; i++)
-               offset = netlogon_dissect_element_netr_CryptPassword_data_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = netlogon_dissect_element_netr_CryptPassword_data_(tvb, offset, 512, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-netlogon_dissect_element_netr_CryptPassword_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+netlogon_dissect_element_netr_CryptPassword_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_CryptPassword_data, 0);
+       proto_tree_add_bytes(tree, hf_netlogon_netr_CryptPassword_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -13797,15 +13813,15 @@ netlogon_dissect_element_netr_DsRAddress_buffer(tvbuff_t *tvb _U_, int offset _U
 static int
 netlogon_dissect_element_netr_DsRAddress_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRAddress_buffer__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRAddress_buffer__);
 
        return offset;
 }
 
 static int
-netlogon_dissect_element_netr_DsRAddress_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+netlogon_dissect_element_netr_DsRAddress_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsRAddress_buffer, 0);
+       proto_tree_add_bytes(tree, hf_netlogon_netr_DsRAddress_buffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -21123,7 +21139,7 @@ void proto_register_dcerpc_netlogon(void)
        { &hf_netlogon_netr_LogonSamLogon_return_authenticator,
          { "Return Authenticator", "netlogon.netr_LogonSamLogon.return_authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_UserSessionKey_key,
-         { "Key", "netlogon.netr_UserSessionKey.key", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Key", "netlogon.netr_UserSessionKey.key", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_DomainTrustList_count,
          { "Count", "netlogon.netr_DomainTrustList.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_DELTA_SECRET_unknown5,
@@ -21307,7 +21323,7 @@ void proto_register_dcerpc_netlogon(void)
        { &hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_BACKOFFICE,
          { "Netr Ver Suite Backoffice", "netlogon.netr_SuiteMask.NETR_VER_SUITE_BACKOFFICE", FT_BOOLEAN, 16, TFS(&netr_SuiteMask_NETR_VER_SUITE_BACKOFFICE_tfs), ( 0x0004 ), NULL, HFILL }},
        { &hf_netlogon_netr_Credential_data,
-         { "Data", "netlogon.netr_Credential.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "netlogon.netr_Credential.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_ServerPasswordGet_return_authenticator,
          { "Return Authenticator", "netlogon.netr_ServerPasswordGet.return_authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_DELTA_GROUP_MEMBER_unknown3,
@@ -21623,7 +21639,7 @@ void proto_register_dcerpc_netlogon(void)
        { &hf_netlogon_NL_DNS_NAME_INFO_dns_domain_info_type,
          { "Dns Domain Info Type", "netlogon.NL_DNS_NAME_INFO.dns_domain_info_type", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_DnsDomainInfoType_vals), 0, NULL, HFILL }},
        { &hf_netlogon_netr_CIPHER_VALUE_cipher_data,
-         { "Cipher Data", "netlogon.netr_CIPHER_VALUE.cipher_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Cipher Data", "netlogon.netr_CIPHER_VALUE.cipher_data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_SamBaseInfo_logon_server,
          { "Logon Server", "netlogon.netr_SamBaseInfo.logon_server", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_ServerGetTrustInfo_server_name,
@@ -21855,7 +21871,7 @@ void proto_register_dcerpc_netlogon(void)
        { &hf_netlogon_netr_LogonUasLogoff_server_name,
          { "Server Name", "netlogon.netr_LogonUasLogoff.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_LsaPolicyInformation_policy,
-         { "Policy", "netlogon.netr_LsaPolicyInformation.policy", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Policy", "netlogon.netr_LsaPolicyInformation.policy", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_AccountDeltas_uas,
          { "Uas", "netlogon.netr_AccountDeltas.uas", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_GetDcName_logon_server,
@@ -21921,7 +21937,7 @@ void proto_register_dcerpc_netlogon(void)
        { &hf_netlogon_netr_DomainInformation_workstation_flags,
          { "Workstation Flags", "netlogon.netr_DomainInformation.workstation_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_USER_PRIVATE_INFO_SensitiveData,
-         { "Sensitivedata", "netlogon.netr_USER_PRIVATE_INFO.SensitiveData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Sensitivedata", "netlogon.netr_USER_PRIVATE_INFO.SensitiveData", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_DELTA_USER_unknown2,
          { "Unknown2", "netlogon.netr_DELTA_USER.unknown2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_OsVersionInfoEx_ProductType,
@@ -22127,7 +22143,7 @@ void proto_register_dcerpc_netlogon(void)
        { &hf_netlogon_netr_ServerAuthenticate2_negotiate_flags,
          { "Negotiate Flags", "netlogon.netr_ServerAuthenticate2.negotiate_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_GenericInfo_data,
-         { "Data", "netlogon.netr_GenericInfo.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "netlogon.netr_GenericInfo.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_WorkstationInformation_dummy_string4,
          { "Dummy String4", "netlogon.netr_WorkstationInformation.dummy_string4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_DsRGetDCName_info,
@@ -22145,7 +22161,7 @@ void proto_register_dcerpc_netlogon(void)
        { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_PERSISTENT_SAMREPL,
          { "Netlogon Neg Persistent Samrepl", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_PERSISTENT_SAMREPL", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_PERSISTENT_SAMREPL_tfs), ( 0x00000002 ), NULL, HFILL }},
        { &hf_netlogon_netr_PacInfo_pac,
-         { "Pac", "netlogon.netr_PacInfo.pac", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Pac", "netlogon.netr_PacInfo.pac", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_DELTA_ENUM_delta_id_union,
          { "Delta Id Union", "netlogon.netr_DELTA_ENUM.delta_id_union", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_ENTERPRISE,
@@ -22233,7 +22249,7 @@ void proto_register_dcerpc_netlogon(void)
        { &hf_netlogon_netr_DsRAddress_size,
          { "Size", "netlogon.netr_DsRAddress.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_Blob_data,
-         { "Data", "netlogon.netr_Blob.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "netlogon.netr_Blob.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_DELTA_GROUP_MEMBER_num_rids,
          { "Num Rids", "netlogon.netr_DELTA_GROUP_MEMBER.num_rids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_DELTA_ALIAS_SecurityInformation,
@@ -22519,9 +22535,9 @@ void proto_register_dcerpc_netlogon(void)
        { &hf_netlogon_netr_USER_KEYS2_lmpassword,
          { "Lmpassword", "netlogon.netr_USER_KEYS2.lmpassword", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_PacInfo_auth,
-         { "Auth", "netlogon.netr_PacInfo.auth", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Auth", "netlogon.netr_PacInfo.auth", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_LMSessionKey_key,
-         { "Key", "netlogon.netr_LMSessionKey.key", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Key", "netlogon.netr_LMSessionKey.key", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_DELTA_USER_nt_password_present,
          { "Nt Password Present", "netlogon.netr_DELTA_USER.nt_password_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_NetworkInfo_lm,
@@ -22589,7 +22605,7 @@ void proto_register_dcerpc_netlogon(void)
        { &hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_SINGLEUSERTS,
          { "Netr Ver Suite Singleuserts", "netlogon.netr_SuiteMask.NETR_VER_SUITE_SINGLEUSERTS", FT_BOOLEAN, 16, TFS(&netr_SuiteMask_NETR_VER_SUITE_SINGLEUSERTS_tfs), ( 0x0100 ), NULL, HFILL }},
        { &hf_netlogon_netr_CryptPassword_data,
-         { "Data", "netlogon.netr_CryptPassword.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "netlogon.netr_CryptPassword.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_WorkstationInformation_workstation_flags,
          { "Workstation Flags", "netlogon.netr_WorkstationInformation.workstation_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_SamBaseInfo_last_failed_logon,
@@ -22605,9 +22621,9 @@ void proto_register_dcerpc_netlogon(void)
        { &hf_netlogon_netr_DELTA_USER_comment,
          { "Comment", "netlogon.netr_DELTA_USER.comment", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_ChallengeResponse_data,
-         { "Data", "netlogon.netr_ChallengeResponse.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "netlogon.netr_ChallengeResponse.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_NetworkInfo_challenge,
-         { "Challenge", "netlogon.netr_NetworkInfo.challenge", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Challenge", "netlogon.netr_NetworkInfo.challenge", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_DELTA_DOMAIN_logon_to_chgpass,
          { "Logon To Chgpass", "netlogon.netr_DELTA_DOMAIN.logon_to_chgpass", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_SamBaseInfo_logon_script,
@@ -22639,7 +22655,7 @@ void proto_register_dcerpc_netlogon(void)
        { &hf_netlogon_netr_DELTA_SECRET_old_cipher_set_time,
          { "Old Cipher Set Time", "netlogon.netr_DELTA_SECRET.old_cipher_set_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_GenericInfo2_data,
-         { "Data", "netlogon.netr_GenericInfo2.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "netlogon.netr_GenericInfo2.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_UserFlags_NETLOGON_USED_LM_PASSWORD,
          { "Netlogon Used Lm Password", "netlogon.netr_UserFlags.NETLOGON_USED_LM_PASSWORD", FT_BOOLEAN, 32, TFS(&netr_UserFlags_NETLOGON_USED_LM_PASSWORD_tfs), ( 0x00000008 ), NULL, HFILL }},
        { &hf_netlogon_netr_DsRGetDCNameInfo_domain_name,
@@ -22761,7 +22777,7 @@ void proto_register_dcerpc_netlogon(void)
        { &hf_netlogon_netr_ChangeLogObject_object_name,
          { "Object Name", "netlogon.netr_ChangeLogObject.object_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_DsRAddress_buffer,
-         { "Buffer", "netlogon.netr_DsRAddress.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Buffer", "netlogon.netr_DsRAddress.buffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_LogonSamLogonEx_computer_name,
          { "Computer Name", "netlogon.netr_LogonSamLogonEx.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_SamInfo3_sids,
@@ -22873,7 +22889,7 @@ void proto_register_dcerpc_netlogon(void)
        { &hf_netlogon_netr_SamBaseInfo_sub_auth_status,
          { "Sub Auth Status", "netlogon.netr_SamBaseInfo.sub_auth_status", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_UAS_INFO_0_computer_name,
-         { "Computer Name", "netlogon.netr_UAS_INFO_0.computer_name", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Computer Name", "netlogon.netr_UAS_INFO_0.computer_name", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_USER_KEY16_pwd,
          { "Pwd", "netlogon.netr_USER_KEY16.pwd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_netlogon_netr_DsrDeregisterDNSHostRecords_server_name,
index cc58423bf9903131b24922513801d04a848d263b..2a2a6c88b6bdf4215a2d79cd6d05aab762dd6325 100644 (file)
@@ -337,11 +337,11 @@ static int ntlmssp_dissect_element_VERSION_ProductMajorVersion(tvbuff_t *tvb _U_
 static int ntlmssp_dissect_element_VERSION_ProductMinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_VERSION_ProductBuild(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_VERSION_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int ntlmssp_dissect_element_VERSION_Reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_VERSION_Reserved_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_VERSION_NTLMRevisionCurrent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_Version_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_NegotiateFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *NegotiateFlags);
 static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainNameLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -374,7 +374,7 @@ static int ntlmssp_dissect_element_Restriction_Encoding_Z4(tvbuff_t *tvb _U_, in
 static int ntlmssp_dissect_element_Restriction_Encoding_IntegrityLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_Restriction_Encoding_SubjectIntegrityLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_Restriction_Encoding_MachineId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int ntlmssp_dissect_element_Restriction_Encoding_MachineId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_Restriction_Encoding_MachineId_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static const true_false_string ntlmssp_AvFlags_NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT_tfs = {
    "NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT is SET",
    "NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT is NOT SET",
@@ -393,7 +393,7 @@ static int ntlmssp_dissect_element_AvValue_AvTimestamp(tvbuff_t *tvb _U_, int of
 static int ntlmssp_dissect_element_AvValue_AvRestrictions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_AvValue_AvTargetName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_AvValue_ChannelBindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int ntlmssp_dissect_element_AvValue_ChannelBindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AvValue_ChannelBindings_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_AvValue_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_AV_PAIR_AvId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *AvId);
 static int ntlmssp_dissect_element_AV_PAIR_AvLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -403,7 +403,7 @@ static int ntlmssp_dissect_element_AV_PAIR_LIST_count(tvbuff_t *tvb _U_, int off
 static int ntlmssp_dissect_element_AV_PAIR_LIST_pair(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_AV_PAIR_LIST_pair_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -412,9 +412,9 @@ static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetName_(tvbuff_t *tvb _
 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_NegotiateFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *NegotiateFlags);
 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_Reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_Reserved_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfoLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameInfoMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -422,33 +422,33 @@ static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo_(tvbuff_t *tvb _
 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *);
 static int ntlmssp_dissect_element_LM_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int ntlmssp_dissect_element_LM_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_LM_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_LMv2_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int ntlmssp_dissect_element_LMv2_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_LMv2_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_LMv2_RESPONSE_ChallengeFromClient(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int ntlmssp_dissect_element_LMv2_RESPONSE_ChallengeFromClient_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_LMv2_RESPONSE_ChallengeFromClient_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_LM_RESPONSE_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_NTLM_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int ntlmssp_dissect_element_NTLM_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLM_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_RespType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_HiRespType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_TimeStamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_AvPairs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_AvPairs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_NTLMv2_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int ntlmssp_dissect_element_NTLMv2_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMv2_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_NTLMv2_RESPONSE_Challenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_NTLM_RESPONSE_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_NTLM_RESPONSE_v2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_MIC_MIC(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int ntlmssp_dissect_element_MIC_MIC_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_MIC_MIC_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponseLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *LmChallengeResponseLen);
 static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponseMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -488,7 +488,7 @@ static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_Checksum(tvbuff_t *
 static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_SeqNum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_SeqNum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_decode_NEGOTIATE_MESSAGE_negotiate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntlmssp_dissect_element_decode_CHALLENGE_MESSAGE_challenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -879,17 +879,19 @@ ntlmssp_dissect_element_VERSION_ProductBuild(tvbuff_t *tvb _U_, int offset _U_,
 static int
 ntlmssp_dissect_element_VERSION_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 3; i++)
-               offset = ntlmssp_dissect_element_VERSION_Reserved_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = ntlmssp_dissect_element_VERSION_Reserved_(tvb, offset, 3, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-ntlmssp_dissect_element_VERSION_Reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+ntlmssp_dissect_element_VERSION_Reserved_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_ntlmssp_VERSION_Reserved, 0);
+       proto_tree_add_bytes(tree, hf_ntlmssp_ntlmssp_VERSION_Reserved, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -998,17 +1000,19 @@ ntlmssp_dissect_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U
 static int
 ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 8; i++)
-               offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Signature_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Signature_(tvb, offset, 8, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NEGOTIATE_MESSAGE_Signature, 0);
+       proto_tree_add_bytes(tree, hf_ntlmssp_NEGOTIATE_MESSAGE_Signature, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1263,17 +1267,19 @@ ntlmssp_dissect_element_Restriction_Encoding_SubjectIntegrityLevel(tvbuff_t *tvb
 static int
 ntlmssp_dissect_element_Restriction_Encoding_MachineId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 32; i++)
-               offset = ntlmssp_dissect_element_Restriction_Encoding_MachineId_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = ntlmssp_dissect_element_Restriction_Encoding_MachineId_(tvb, offset, 32, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-ntlmssp_dissect_element_Restriction_Encoding_MachineId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+ntlmssp_dissect_element_Restriction_Encoding_MachineId_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_Restriction_Encoding_MachineId, 0);
+       proto_tree_add_bytes(tree, hf_ntlmssp_Restriction_Encoding_MachineId, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1450,17 +1456,19 @@ ntlmssp_dissect_element_AvValue_AvTargetName(tvbuff_t *tvb _U_, int offset _U_,
 static int
 ntlmssp_dissect_element_AvValue_ChannelBindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 16; i++)
-               offset = ntlmssp_dissect_element_AvValue_ChannelBindings_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = ntlmssp_dissect_element_AvValue_ChannelBindings_(tvb, offset, 16, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-ntlmssp_dissect_element_AvValue_ChannelBindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+ntlmssp_dissect_element_AvValue_ChannelBindings_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_ntlmssp_AvValue_ChannelBindings, 0);
+       proto_tree_add_bytes(tree, hf_ntlmssp_ntlmssp_AvValue_ChannelBindings, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1705,17 +1713,19 @@ ntlmssp_dissect_struct_AV_PAIR_LIST(tvbuff_t *tvb _U_, int offset _U_, packet_in
 static int
 ntlmssp_dissect_element_CHALLENGE_MESSAGE_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 8; i++)
-               offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_Signature_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_Signature_(tvb, offset, 8, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-ntlmssp_dissect_element_CHALLENGE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_Signature, 0);
+       proto_tree_add_bytes(tree, hf_ntlmssp_CHALLENGE_MESSAGE_Signature, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1791,17 +1801,19 @@ ntlmssp_dissect_element_CHALLENGE_MESSAGE_NegotiateFlags(tvbuff_t *tvb _U_, int
 static int
 ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 8; i++)
-               offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge_(tvb, offset, 8, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_ServerChallenge, 0);
+       proto_tree_add_bytes(tree, hf_ntlmssp_CHALLENGE_MESSAGE_ServerChallenge, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1809,17 +1821,19 @@ ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge_(tvbuff_t *tvb _U_, in
 static int
 ntlmssp_dissect_element_CHALLENGE_MESSAGE_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 8; i++)
-               offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_Reserved_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_Reserved_(tvb, offset, 8, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-ntlmssp_dissect_element_CHALLENGE_MESSAGE_Reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_Reserved_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_Reserved, 0);
+       proto_tree_add_bytes(tree, hf_ntlmssp_CHALLENGE_MESSAGE_Reserved, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1946,17 +1960,19 @@ ntlmssp_dissect_struct_CHALLENGE_MESSAGE(tvbuff_t *tvb _U_, int offset _U_, pack
 static int
 ntlmssp_dissect_element_LM_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 24; i++)
-               offset = ntlmssp_dissect_element_LM_RESPONSE_Response_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = ntlmssp_dissect_element_LM_RESPONSE_Response_(tvb, offset, 24, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-ntlmssp_dissect_element_LM_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+ntlmssp_dissect_element_LM_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_LM_RESPONSE_Response, 0);
+       proto_tree_add_bytes(tree, hf_ntlmssp_LM_RESPONSE_Response, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1994,17 +2010,19 @@ ntlmssp_dissect_struct_LM_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_inf
 static int
 ntlmssp_dissect_element_LMv2_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 16; i++)
-               offset = ntlmssp_dissect_element_LMv2_RESPONSE_Response_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = ntlmssp_dissect_element_LMv2_RESPONSE_Response_(tvb, offset, 16, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-ntlmssp_dissect_element_LMv2_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+ntlmssp_dissect_element_LMv2_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_LMv2_RESPONSE_Response, 0);
+       proto_tree_add_bytes(tree, hf_ntlmssp_LMv2_RESPONSE_Response, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -2012,17 +2030,19 @@ ntlmssp_dissect_element_LMv2_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U
 static int
 ntlmssp_dissect_element_LMv2_RESPONSE_ChallengeFromClient(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 8; i++)
-               offset = ntlmssp_dissect_element_LMv2_RESPONSE_ChallengeFromClient_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = ntlmssp_dissect_element_LMv2_RESPONSE_ChallengeFromClient_(tvb, offset, 8, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-ntlmssp_dissect_element_LMv2_RESPONSE_ChallengeFromClient_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+ntlmssp_dissect_element_LMv2_RESPONSE_ChallengeFromClient_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_LMv2_RESPONSE_ChallengeFromClient, 0);
+       proto_tree_add_bytes(tree, hf_ntlmssp_LMv2_RESPONSE_ChallengeFromClient, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -2102,17 +2122,19 @@ ntlmssp_dissect_LM_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinf
 static int
 ntlmssp_dissect_element_NTLM_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 24; i++)
-               offset = ntlmssp_dissect_element_NTLM_RESPONSE_Response_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = ntlmssp_dissect_element_NTLM_RESPONSE_Response_(tvb, offset, 24, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-ntlmssp_dissect_element_NTLM_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+ntlmssp_dissect_element_NTLM_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLM_RESPONSE_Response, 0);
+       proto_tree_add_bytes(tree, hf_ntlmssp_NTLM_RESPONSE_Response, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -2196,17 +2218,19 @@ ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_TimeStamp(tvbuff_t *tvb _U_, int
 static int
 ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 8; i++)
-               offset = ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient_(tvb, offset, 8, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient, 0);
+       proto_tree_add_bytes(tree, hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -2301,17 +2325,19 @@ ntlmssp_dissect_struct_NTLMv2_CLIENT_CHALLENGE(tvbuff_t *tvb _U_, int offset _U_
 static int
 ntlmssp_dissect_element_NTLMv2_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 16; i++)
-               offset = ntlmssp_dissect_element_NTLMv2_RESPONSE_Response_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = ntlmssp_dissect_element_NTLMv2_RESPONSE_Response_(tvb, offset, 16, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-ntlmssp_dissect_element_NTLMv2_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+ntlmssp_dissect_element_NTLMv2_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMv2_RESPONSE_Response, 0);
+       proto_tree_add_bytes(tree, hf_ntlmssp_NTLMv2_RESPONSE_Response, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -2418,17 +2444,19 @@ ntlmssp_dissect_NTLM_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi
 static int
 ntlmssp_dissect_element_MIC_MIC(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 16; i++)
-               offset = ntlmssp_dissect_element_MIC_MIC_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = ntlmssp_dissect_element_MIC_MIC_(tvb, offset, 16, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-ntlmssp_dissect_element_MIC_MIC_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+ntlmssp_dissect_element_MIC_MIC_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_MIC_MIC, 0);
+       proto_tree_add_bytes(tree, hf_ntlmssp_MIC_MIC, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -2486,17 +2514,19 @@ ntlmssp_dissect_struct_MIC(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo
 static int
 ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 8; i++)
-               offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Signature_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Signature_(tvb, offset, 8, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_Signature, 0);
+       proto_tree_add_bytes(tree, hf_ntlmssp_AUTHENTICATE_MESSAGE_Signature, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3011,17 +3041,19 @@ ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Version(tvbuff_t *tvb _
 static int
 ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 8; i++)
-               offset = ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum_(tvb, offset, 8, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum, 0);
+       proto_tree_add_bytes(tree, hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3231,25 +3263,25 @@ void proto_register_dcerpc_ntlmssp(void)
        { &hf_ntlmssp_CHALLENGE_MESSAGE_TargetNameInfoMaxLen,
          { "Targetnameinfomaxlen", "ntlmssp.CHALLENGE_MESSAGE.TargetNameInfoMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_ntlmssp_VERSION_Reserved,
-         { "Reserved", "ntlmssp.ntlmssp_VERSION.Reserved", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Reserved", "ntlmssp.ntlmssp_VERSION.Reserved", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_ntlmssp_AvValue_AvNbComputerName,
          { "Avnbcomputername", "ntlmssp.ntlmssp_AvValue.AvNbComputerName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_CHALLENGE_MESSAGE_Reserved,
-         { "Reserved", "ntlmssp.CHALLENGE_MESSAGE.Reserved", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Reserved", "ntlmssp.CHALLENGE_MESSAGE.Reserved", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_ntlmssp_AvValue_AvTimestamp,
          { "Avtimestamp", "ntlmssp.ntlmssp_AvValue.AvTimestamp", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_OEM,
          { "Ntlmssp Negotiate Oem", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_OEM", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_tfs), ( 0x00000002 ), NULL, HFILL }},
        { &hf_ntlmssp_Restriction_Encoding_MachineId,
-         { "Machineid", "ntlmssp.Restriction_Encoding.MachineId", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Machineid", "ntlmssp.Restriction_Encoding.MachineId", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_NEGOTIATE_MESSAGE_WorkstationLen,
          { "Workstationlen", "ntlmssp.NEGOTIATE_MESSAGE.WorkstationLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NTLM,
          { "Ntlmssp Negotiate Ntlm", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_NTLM", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_NTLM_tfs), ( 0x00000200 ), NULL, HFILL }},
        { &hf_ntlmssp_ntlmssp_AvValue_ChannelBindings,
-         { "Channelbindings", "ntlmssp.ntlmssp_AvValue.ChannelBindings", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Channelbindings", "ntlmssp.ntlmssp_AvValue.ChannelBindings", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_AUTHENTICATE_MESSAGE_Signature,
-         { "Signature", "ntlmssp.AUTHENTICATE_MESSAGE.Signature", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Signature", "ntlmssp.AUTHENTICATE_MESSAGE.Signature", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_SEAL,
          { "Ntlmssp Negotiate Seal", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_SEAL", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_SEAL_tfs), ( 0x00000020 ), NULL, HFILL }},
        { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_KEY_EXCH,
@@ -3267,7 +3299,7 @@ void proto_register_dcerpc_ntlmssp(void)
        { &hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfoLen,
          { "Targetinfolen", "ntlmssp.CHALLENGE_MESSAGE.TargetInfoLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_LMv2_RESPONSE_ChallengeFromClient,
-         { "Challengefromclient", "ntlmssp.LMv2_RESPONSE.ChallengeFromClient", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Challengefromclient", "ntlmssp.LMv2_RESPONSE.ChallengeFromClient", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponse_,
          { "Subcontext length", "ntlmssp.AUTHENTICATE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponse,
@@ -3279,11 +3311,11 @@ void proto_register_dcerpc_ntlmssp(void)
        { &hf_ntlmssp_AUTHENTICATE_MESSAGE_Version,
          { "Version", "ntlmssp.AUTHENTICATE_MESSAGE.Version", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_LM_RESPONSE_Response,
-         { "Response", "ntlmssp.LM_RESPONSE.Response", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Response", "ntlmssp.LM_RESPONSE.Response", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_NEGOTIATE_MESSAGE_DomainNameLen,
          { "Domainnamelen", "ntlmssp.NEGOTIATE_MESSAGE.DomainNameLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_NTLMv2_RESPONSE_Response,
-         { "Response", "ntlmssp.NTLMv2_RESPONSE.Response", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Response", "ntlmssp.NTLMv2_RESPONSE.Response", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NETWARE,
          { "Ntlmssp Negotiate Netware", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_NETWARE", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_NETWARE_tfs), ( 0x00000100 ), NULL, HFILL }},
        { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_RespType,
@@ -3345,7 +3377,7 @@ void proto_register_dcerpc_ntlmssp(void)
        { &hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainName_,
          { "Subcontext length", "ntlmssp.AUTHENTICATE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_LMv2_RESPONSE_Response,
-         { "Response", "ntlmssp.LMv2_RESPONSE.Response", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Response", "ntlmssp.LMv2_RESPONSE.Response", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_AUTHENTICATE_MESSAGE_WorkstationMaxLen,
          { "Workstationmaxlen", "ntlmssp.AUTHENTICATE_MESSAGE.WorkstationMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponseMaxLen,
@@ -3355,7 +3387,7 @@ void proto_register_dcerpc_ntlmssp(void)
        { &hf_ntlmssp_ntlmssp_AvValue_blob,
          { "Blob", "ntlmssp.ntlmssp_AvValue.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_CHALLENGE_MESSAGE_ServerChallenge,
-         { "Serverchallenge", "ntlmssp.CHALLENGE_MESSAGE.ServerChallenge", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Serverchallenge", "ntlmssp.CHALLENGE_MESSAGE.ServerChallenge", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NT_ONLY,
          { "Ntlmssp Negotiate Nt Only", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_NT_ONLY", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_NT_ONLY_tfs), ( 0x00000400 ), NULL, HFILL }},
        { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_SIGN,
@@ -3365,11 +3397,11 @@ void proto_register_dcerpc_ntlmssp(void)
        { &hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponseLen,
          { "Lmchallengeresponselen", "ntlmssp.AUTHENTICATE_MESSAGE.LmChallengeResponseLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_NTLM_RESPONSE_Response,
-         { "Response", "ntlmssp.NTLM_RESPONSE.Response", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Response", "ntlmssp.NTLM_RESPONSE.Response", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_AV_PAIR_LIST_count,
          { "Count", "ntlmssp.AV_PAIR_LIST.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum,
-         { "Checksum", "ntlmssp.NTLMSSP_MESSAGE_SIGNATURE_NTLMv2.Checksum", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Checksum", "ntlmssp.NTLMSSP_MESSAGE_SIGNATURE_NTLMv2.Checksum", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_CHALLENGE_MESSAGE_Version,
          { "Version", "ntlmssp.CHALLENGE_MESSAGE.Version", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_Restriction_Encoding_SubjectIntegrityLevel,
@@ -3383,7 +3415,7 @@ void proto_register_dcerpc_ntlmssp(void)
        { &hf_ntlmssp_ntlmssp_AvValue_AvFlags,
          { "Avflags", "ntlmssp.ntlmssp_AvValue.AvFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_CHALLENGE_MESSAGE_Signature,
-         { "Signature", "ntlmssp.CHALLENGE_MESSAGE.Signature", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Signature", "ntlmssp.CHALLENGE_MESSAGE.Signature", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Version,
          { "Version", "ntlmssp.NTLMSSP_MESSAGE_SIGNATURE_NTLMv2.Version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_Restriction_Encoding_Z4,
@@ -3407,11 +3439,11 @@ void proto_register_dcerpc_ntlmssp(void)
        { &hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainNameLen,
          { "Domainnamelen", "ntlmssp.AUTHENTICATE_MESSAGE.DomainNameLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_NEGOTIATE_MESSAGE_Signature,
-         { "Signature", "ntlmssp.NEGOTIATE_MESSAGE.Signature", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Signature", "ntlmssp.NEGOTIATE_MESSAGE.Signature", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_ntlmssp_AvValue_AvRestrictions,
          { "Avrestrictions", "ntlmssp.ntlmssp_AvValue.AvRestrictions", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_MIC_MIC,
-         { "Mic", "ntlmssp.MIC.MIC", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Mic", "ntlmssp.MIC.MIC", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_AV_PAIR_Value_,
          { "Subcontext length", "ntlmssp.AV_PAIR.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_Restriction_Encoding_Size,
@@ -3421,7 +3453,7 @@ void proto_register_dcerpc_ntlmssp(void)
        { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_HiRespType,
          { "Hiresptype", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.HiRespType", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient,
-         { "Challengefromclient", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.ChallengeFromClient", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Challengefromclient", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.ChallengeFromClient", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntlmssp_ntlmssp_AvFlags_NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT,
          { "Ntlmssp Avflag Constrainted Account", "ntlmssp.ntlmssp_AvFlags.NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT", FT_BOOLEAN, 32, TFS(&ntlmssp_AvFlags_NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT_tfs), ( 0x00000001 ), NULL, HFILL }},
        { &hf_ntlmssp_NEGOTIATE_NTLMSSP_ANONYMOUS,
index 119bb99f2bf80ccc49759074d0c931ffd80c4d24..0c46574b35746dbe650210d6391859fe420a9803 100644 (file)
@@ -160,7 +160,7 @@ static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_reg_data_type(tvbuff_t *t
 static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_reg_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -326,9 +326,11 @@ ntsvcs_dissect_element_PNP_HwProfInfo_profile_handle(tvbuff_t *tvb _U_, int offs
 static int
 ntsvcs_dissect_element_PNP_HwProfInfo_friendly_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 80; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = ntsvcs_dissect_element_PNP_HwProfInfo_friendly_name_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -947,15 +949,15 @@ ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer(tvbuff_t *tvb _U_, int offset
 static int
 ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer__);
+       offset = dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer__);
 
        return offset;
 }
 
 static int
-ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_GetDeviceRegProp_buffer, 0);
+       proto_tree_add_bytes(tree, hf_ntsvcs_PNP_GetDeviceRegProp_buffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -2761,7 +2763,7 @@ void proto_register_dcerpc_ntsvcs(void)
        { &hf_ntsvcs_PNP_GetDeviceRegProp_needed,
          { "Needed", "ntsvcs.PNP_GetDeviceRegProp.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_ntsvcs_PNP_GetDeviceRegProp_buffer,
-         { "Buffer", "ntsvcs.PNP_GetDeviceRegProp.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Buffer", "ntsvcs.PNP_GetDeviceRegProp.buffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_ENUMERATOR,
          { "Cm Getidlist Filter Enumerator", "ntsvcs.PNP_GetIdListFlags.CM_GETIDLIST_FILTER_ENUMERATOR", FT_BOOLEAN, 32, TFS(&PNP_GetIdListFlags_CM_GETIDLIST_FILTER_ENUMERATOR_tfs), ( 0x00000001 ), NULL, HFILL }},
        { &hf_ntsvcs_PNP_GetDeviceRegProp_reg_data_type,
index 7c4bf01571116318eb69f6b89abbbcc3ea418329..ee14ae1181c0742b405f36c8ccdd6025005b2db5 100644 (file)
@@ -1220,7 +1220,7 @@ static int samr_dissect_element_UserInfo2_code_page(tvbuff_t *tvb _U_, int offse
 static int samr_dissect_element_LogonHours_units_per_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_LogonHours_bits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_LogonHours_bits_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int samr_dissect_element_LogonHours_bits__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LogonHours_bits__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_UserInfo3_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_UserInfo3_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_UserInfo3_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1272,7 +1272,7 @@ static int samr_dissect_element_UserInfo14_workstations(tvbuff_t *tvb _U_, int o
 static int samr_dissect_element_UserInfo16_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_UserInfo17_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_Password_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int samr_dissect_element_Password_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Password_hash_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_UserInfo18_nt_pwd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_UserInfo18_lm_pwd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_UserInfo18_nt_pwd_active(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1421,7 +1421,7 @@ static int samr_dissect_element_UserInfo21_private_data(tvbuff_t *tvb _U_, int o
 static int samr_dissect_element_UserInfo21_buf_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_UserInfo21_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_UserInfo21_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int samr_dissect_element_UserInfo21_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_UserInfo21_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_UserInfo21_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_UserInfo21_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1436,13 +1436,13 @@ static int samr_dissect_element_UserInfo21_nt_password_set(tvbuff_t *tvb _U_, in
 static int samr_dissect_element_UserInfo21_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_UserInfo21_private_data_sensitive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_CryptPassword_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int samr_dissect_element_CryptPassword_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CryptPassword_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_UserInfo23_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_UserInfo23_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_UserInfo24_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_UserInfo24_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_CryptPasswordEx_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int samr_dissect_element_CryptPasswordEx_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CryptPasswordEx_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_UserInfo25_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_UserInfo25_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_UserInfo26_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1587,7 +1587,7 @@ const value_string samr_samr_ValidationStatus_vals[] = {
 static int samr_dissect_element_ValidationBlob_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_ValidationBlob_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_ValidationBlob_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int samr_dissect_element_ValidationBlob_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidationBlob_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_ValidatePasswordInfo_fields_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_ValidatePasswordInfo_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int samr_dissect_element_ValidatePasswordInfo_bad_password_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -4963,15 +4963,15 @@ samr_dissect_element_LogonHours_bits(tvbuff_t *tvb _U_, int offset _U_, packet_i
 static int
 samr_dissect_element_LogonHours_bits_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_LogonHours_bits__);
+       offset = dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, drep, samr_dissect_element_LogonHours_bits__);
 
        return offset;
 }
 
 static int
-samr_dissect_element_LogonHours_bits__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+samr_dissect_element_LogonHours_bits__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_LogonHours_bits, 0);
+       proto_tree_add_bytes(tree, hf_samr_samr_LogonHours_bits, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -6014,17 +6014,19 @@ samr_dissect_struct_UserInfo17(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
 static int
 samr_dissect_element_Password_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 16; i++)
-               offset = samr_dissect_element_Password_hash_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = samr_dissect_element_Password_hash_(tvb, offset, 16, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-samr_dissect_element_Password_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+samr_dissect_element_Password_hash_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_Password_hash, 0);
+       proto_tree_add_bytes(tree, hf_samr_samr_Password_hash, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -6687,15 +6689,15 @@ samr_dissect_element_UserInfo21_buffer(tvbuff_t *tvb _U_, int offset _U_, packet
 static int
 samr_dissect_element_UserInfo21_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_UserInfo21_buffer__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, samr_dissect_element_UserInfo21_buffer__);
 
        return offset;
 }
 
 static int
-samr_dissect_element_UserInfo21_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+samr_dissect_element_UserInfo21_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_buffer, 0);
+       proto_tree_add_bytes(tree, hf_samr_samr_UserInfo21_buffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -6908,17 +6910,19 @@ samr_dissect_struct_UserInfo21(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
 static int
 samr_dissect_element_CryptPassword_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 516; i++)
-               offset = samr_dissect_element_CryptPassword_data_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = samr_dissect_element_CryptPassword_data_(tvb, offset, 516, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-samr_dissect_element_CryptPassword_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+samr_dissect_element_CryptPassword_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_CryptPassword_data, 0);
+       proto_tree_add_bytes(tree, hf_samr_samr_CryptPassword_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -7057,17 +7061,19 @@ samr_dissect_struct_UserInfo24(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
 static int
 samr_dissect_element_CryptPasswordEx_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 532; i++)
-               offset = samr_dissect_element_CryptPasswordEx_data_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = samr_dissect_element_CryptPasswordEx_data_(tvb, offset, 532, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-samr_dissect_element_CryptPasswordEx_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+samr_dissect_element_CryptPasswordEx_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_CryptPasswordEx_data, 0);
+       proto_tree_add_bytes(tree, hf_samr_samr_CryptPasswordEx_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -8756,15 +8762,15 @@ samr_dissect_element_ValidationBlob_data(tvbuff_t *tvb _U_, int offset _U_, pack
 static int
 samr_dissect_element_ValidationBlob_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_ValidationBlob_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, samr_dissect_element_ValidationBlob_data__);
 
        return offset;
 }
 
 static int
-samr_dissect_element_ValidationBlob_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+samr_dissect_element_ValidationBlob_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidationBlob_data, 0);
+       proto_tree_add_bytes(tree, hf_samr_samr_ValidationBlob_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -15913,7 +15919,7 @@ void proto_register_dcerpc_samr(void)
        { &hf_samr_samr_AcctFlags_ACB_HOMDIRREQ,
          { "Acb Homdirreq", "samr.samr_AcctFlags.ACB_HOMDIRREQ", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_HOMDIRREQ_tfs), ( 0x00000002 ), NULL, HFILL }},
        { &hf_samr_samr_CryptPasswordEx_data,
-         { "Data", "samr.samr_CryptPasswordEx.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "samr.samr_CryptPasswordEx.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_samr_samr_SetAliasInfo_alias_handle,
          { "Alias Handle", "samr.samr_SetAliasInfo.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_samr_samr_ValidatePasswordInfo_bad_password_time,
@@ -16219,7 +16225,7 @@ void proto_register_dcerpc_samr(void)
        { &hf_samr_samr_LookupRids_domain_handle,
          { "Domain Handle", "samr.samr_LookupRids.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_samr_samr_LogonHours_bits,
-         { "Bits", "samr.samr_LogonHours.bits", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Bits", "samr.samr_LogonHours.bits", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_samr_samr_OpenUser_domain_handle,
          { "Domain Handle", "samr.samr_OpenUser.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_samr_samr_CreateUser2_access_mask,
@@ -16359,7 +16365,7 @@ void proto_register_dcerpc_samr(void)
        { &hf_samr_samr_DeleteDomainGroup_group_handle,
          { "Group Handle", "samr.samr_DeleteDomainGroup.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_samr_samr_Password_hash,
-         { "Hash", "samr.samr_Password.hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Hash", "samr.samr_Password.hash", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_samr_samr_FieldsPresent_SAMR_FIELD_OWF_PWD,
          { "Samr Field Owf Pwd", "samr.samr_FieldsPresent.SAMR_FIELD_OWF_PWD", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_OWF_PWD_tfs), ( 0x20000000 ), NULL, HFILL }},
        { &hf_samr_samr_UserInfo_info25,
@@ -16525,7 +16531,7 @@ void proto_register_dcerpc_samr(void)
        { &hf_samr_samr_RidWithAttribute_attributes,
          { "Attributes", "samr.samr_RidWithAttribute.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
        { &hf_samr_samr_CryptPassword_data,
-         { "Data", "samr.samr_CryptPassword.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "samr.samr_CryptPassword.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_samr_samr_AliasInfo_name,
          { "Name", "samr.samr_AliasInfo.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_USER,
@@ -16629,7 +16635,7 @@ void proto_register_dcerpc_samr(void)
        { &hf_samr_samr_ChangePasswordUser3_dominfo,
          { "Dominfo", "samr.samr_ChangePasswordUser3.dominfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_samr_samr_ValidationBlob_data,
-         { "Data", "samr.samr_ValidationBlob.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "samr.samr_ValidationBlob.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_samr_samr_UserInfo18_lm_pwd_active,
          { "Lm Pwd Active", "samr.samr_UserInfo18.lm_pwd_active", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_samr_samr_CreateDomAlias_domain_handle,
@@ -16791,7 +16797,7 @@ void proto_register_dcerpc_samr(void)
        { &hf_samr_samr_QueryDisplayInfo_level,
          { "Level", "samr.samr_QueryDisplayInfo.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_samr_samr_UserInfo21_buffer,
-         { "Buffer", "samr.samr_UserInfo21.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Buffer", "samr.samr_UserInfo21.buffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_samr_samr_SetDsrmPassword_unknown,
          { "Unknown", "samr.samr_SetDsrmPassword.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_samr_samr_UserInfo5_last_password_change,
index 6e04949f40c9a4298d74a3569eb6763e67d64867..6056323b85fa4617f3a8660addb3a2413293feef 100644 (file)
@@ -94,7 +94,7 @@ static guint16 ver_dcerpc_schannel = 0;
 
 static int schannel_dissect_element_netlogon_creds_CredentialState_negotiate_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int schannel_dissect_element_netlogon_creds_CredentialState_session_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int schannel_dissect_element_netlogon_creds_CredentialState_session_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_netlogon_creds_CredentialState_session_key_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int schannel_dissect_element_netlogon_creds_CredentialState_sequence(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int schannel_dissect_element_netlogon_creds_CredentialState_seed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int schannel_dissect_element_netlogon_creds_CredentialState_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -159,21 +159,21 @@ static int schannel_dissect_element_NL_AUTH_SIGNATURE_SealAlgorithm(tvbuff_t *tv
 static int schannel_dissect_element_NL_AUTH_SIGNATURE_Pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int schannel_dissect_element_NL_AUTH_SIGNATURE_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int schannel_dissect_element_NL_AUTH_SIGNATURE_SequenceNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int schannel_dissect_element_NL_AUTH_SIGNATURE_SequenceNumber_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SIGNATURE_SequenceNumber_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int schannel_dissect_element_NL_AUTH_SIGNATURE_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int schannel_dissect_element_NL_AUTH_SIGNATURE_Checksum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SIGNATURE_Checksum_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int schannel_dissect_element_NL_AUTH_SIGNATURE_Confounder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int schannel_dissect_element_NL_AUTH_SIGNATURE_Confounder_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SIGNATURE_Confounder_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SignatureAlgorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SealAlgorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SequenceNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SequenceNumber_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SequenceNumber_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Checksum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Checksum_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Confounder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Confounder_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Confounder_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 
 
 /* IDL: struct { */
@@ -200,17 +200,19 @@ schannel_dissect_element_netlogon_creds_CredentialState_negotiate_flags(tvbuff_t
 static int
 schannel_dissect_element_netlogon_creds_CredentialState_session_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 16; i++)
-               offset = schannel_dissect_element_netlogon_creds_CredentialState_session_key_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = schannel_dissect_element_netlogon_creds_CredentialState_session_key_(tvb, offset, 16, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-schannel_dissect_element_netlogon_creds_CredentialState_session_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+schannel_dissect_element_netlogon_creds_CredentialState_session_key_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_schannel_netlogon_creds_CredentialState_session_key, 0);
+       proto_tree_add_bytes(tree, hf_schannel_netlogon_creds_CredentialState_session_key, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -779,17 +781,19 @@ schannel_dissect_element_NL_AUTH_SIGNATURE_Flags(tvbuff_t *tvb _U_, int offset _
 static int
 schannel_dissect_element_NL_AUTH_SIGNATURE_SequenceNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 8; i++)
-               offset = schannel_dissect_element_NL_AUTH_SIGNATURE_SequenceNumber_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = schannel_dissect_element_NL_AUTH_SIGNATURE_SequenceNumber_(tvb, offset, 8, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-schannel_dissect_element_NL_AUTH_SIGNATURE_SequenceNumber_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+schannel_dissect_element_NL_AUTH_SIGNATURE_SequenceNumber_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_SIGNATURE_SequenceNumber, 0);
+       proto_tree_add_bytes(tree, hf_schannel_NL_AUTH_SIGNATURE_SequenceNumber, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -797,17 +801,19 @@ schannel_dissect_element_NL_AUTH_SIGNATURE_SequenceNumber_(tvbuff_t *tvb _U_, in
 static int
 schannel_dissect_element_NL_AUTH_SIGNATURE_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 8; i++)
-               offset = schannel_dissect_element_NL_AUTH_SIGNATURE_Checksum_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = schannel_dissect_element_NL_AUTH_SIGNATURE_Checksum_(tvb, offset, 8, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-schannel_dissect_element_NL_AUTH_SIGNATURE_Checksum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+schannel_dissect_element_NL_AUTH_SIGNATURE_Checksum_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_SIGNATURE_Checksum, 0);
+       proto_tree_add_bytes(tree, hf_schannel_NL_AUTH_SIGNATURE_Checksum, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -815,17 +821,19 @@ schannel_dissect_element_NL_AUTH_SIGNATURE_Checksum_(tvbuff_t *tvb _U_, int offs
 static int
 schannel_dissect_element_NL_AUTH_SIGNATURE_Confounder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 8; i++)
-               offset = schannel_dissect_element_NL_AUTH_SIGNATURE_Confounder_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = schannel_dissect_element_NL_AUTH_SIGNATURE_Confounder_(tvb, offset, 8, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-schannel_dissect_element_NL_AUTH_SIGNATURE_Confounder_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+schannel_dissect_element_NL_AUTH_SIGNATURE_Confounder_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_SIGNATURE_Confounder, 0);
+       proto_tree_add_bytes(tree, hf_schannel_NL_AUTH_SIGNATURE_Confounder, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -918,17 +926,19 @@ schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Flags(tvbuff_t *tvb _U_, int off
 static int
 schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SequenceNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 8; i++)
-               offset = schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SequenceNumber_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SequenceNumber_(tvb, offset, 8, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SequenceNumber_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SequenceNumber_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_SHA2_SIGNATURE_SequenceNumber, 0);
+       proto_tree_add_bytes(tree, hf_schannel_NL_AUTH_SHA2_SIGNATURE_SequenceNumber, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -936,17 +946,19 @@ schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SequenceNumber_(tvbuff_t *tvb _U
 static int
 schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 32; i++)
-               offset = schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Checksum_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Checksum_(tvb, offset, 32, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Checksum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Checksum_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_SHA2_SIGNATURE_Checksum, 0);
+       proto_tree_add_bytes(tree, hf_schannel_NL_AUTH_SHA2_SIGNATURE_Checksum, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -954,17 +966,19 @@ schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Checksum_(tvbuff_t *tvb _U_, int
 static int
 schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Confounder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 8; i++)
-               offset = schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Confounder_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Confounder_(tvb, offset, 8, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Confounder_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Confounder_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_SHA2_SIGNATURE_Confounder, 0);
+       proto_tree_add_bytes(tree, hf_schannel_NL_AUTH_SHA2_SIGNATURE_Confounder, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1020,7 +1034,7 @@ void proto_register_dcerpc_schannel(void)
 {
        static hf_register_info hf[] = {
        { &hf_schannel_NL_AUTH_SHA2_SIGNATURE_SequenceNumber,
-         { "Sequencenumber", "schannel.NL_AUTH_SHA2_SIGNATURE.SequenceNumber", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Sequencenumber", "schannel.NL_AUTH_SHA2_SIGNATURE.SequenceNumber", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_schannel_NL_AUTH_SHA2_SIGNATURE_SignatureAlgorithm,
          { "Signaturealgorithm", "schannel.NL_AUTH_SHA2_SIGNATURE.SignatureAlgorithm", FT_UINT1632, BASE_DEC, VALS(schannel_NL_SIGNATURE_ALGORITHM_vals), 0, NULL, HFILL }},
        { &hf_schannel_NL_AUTH_MESSAGE_BUFFER_REPLY_dummy,
@@ -1034,7 +1048,7 @@ void proto_register_dcerpc_schannel(void)
        { &hf_schannel_NL_AUTH_SIGNATURE_Pad,
          { "Pad", "schannel.NL_AUTH_SIGNATURE.Pad", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_schannel_NL_AUTH_SIGNATURE_Confounder,
-         { "Confounder", "schannel.NL_AUTH_SIGNATURE.Confounder", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Confounder", "schannel.NL_AUTH_SIGNATURE.Confounder", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_schannel_NL_AUTH_SIGNATURE_SignatureAlgorithm,
          { "Signaturealgorithm", "schannel.NL_AUTH_SIGNATURE.SignatureAlgorithm", FT_UINT1632, BASE_DEC, VALS(schannel_NL_SIGNATURE_ALGORITHM_vals), 0, NULL, HFILL }},
        { &hf_schannel_netlogon_creds_CredentialState_sid,
@@ -1056,15 +1070,15 @@ void proto_register_dcerpc_schannel(void)
        { &hf_schannel_netlogon_creds_CredentialState_negotiate_flags,
          { "Negotiate Flags", "schannel.netlogon_creds_CredentialState.negotiate_flags", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_schannel_NL_AUTH_SHA2_SIGNATURE_Confounder,
-         { "Confounder", "schannel.NL_AUTH_SHA2_SIGNATURE.Confounder", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Confounder", "schannel.NL_AUTH_SHA2_SIGNATURE.Confounder", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_schannel_NL_AUTH_MESSAGE_oem_netbios_domain,
          { "Oem Netbios Domain", "schannel.NL_AUTH_MESSAGE.oem_netbios_domain", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_schannel_netlogon_creds_CredentialState_session_key,
-         { "Session Key", "schannel.netlogon_creds_CredentialState.session_key", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Session Key", "schannel.netlogon_creds_CredentialState.session_key", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_schannel_NL_AUTH_MESSAGE_utf8_netbios_computer,
          { "Utf8 Netbios Computer", "schannel.NL_AUTH_MESSAGE.utf8_netbios_computer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_schannel_NL_AUTH_SIGNATURE_SequenceNumber,
-         { "Sequencenumber", "schannel.NL_AUTH_SIGNATURE.SequenceNumber", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Sequencenumber", "schannel.NL_AUTH_SIGNATURE.SequenceNumber", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_schannel_netlogon_creds_CredentialState_client,
          { "Client", "schannel.netlogon_creds_CredentialState.client", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_schannel_opnum,
@@ -1096,9 +1110,9 @@ void proto_register_dcerpc_schannel(void)
        { &hf_schannel_netlogon_creds_CredentialState_secure_channel_type,
          { "Secure Channel Type", "schannel.netlogon_creds_CredentialState.secure_channel_type", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_schannel_NL_AUTH_SHA2_SIGNATURE_Checksum,
-         { "Checksum", "schannel.NL_AUTH_SHA2_SIGNATURE.Checksum", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Checksum", "schannel.NL_AUTH_SHA2_SIGNATURE.Checksum", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_schannel_NL_AUTH_SIGNATURE_Checksum,
-         { "Checksum", "schannel.NL_AUTH_SIGNATURE.Checksum", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Checksum", "schannel.NL_AUTH_SIGNATURE.Checksum", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_schannel_NL_AUTH_SIGNATURE_Flags,
          { "Flags", "schannel.NL_AUTH_SIGNATURE.Flags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        };
index 4507dcbd4078d28900015a6f3259d4479ed4d1c7..3223dfac7fbb385d99ec54dfc63cd624cc554e5c 100644 (file)
@@ -3960,7 +3960,7 @@ static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_TIMEOUT
 static int spoolss_dissect_element_PortVarContainer_monitor_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_PortVarContainer_monitor_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_PortVarContainer_monitor_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int spoolss_dissect_element_PortVarContainer_monitor_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortVarContainer_monitor_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 const value_string spoolss_spoolss_JobNotifyField_vals[] = {
        { JOB_NOTIFY_FIELD_PRINTER_NAME, "JOB_NOTIFY_FIELD_PRINTER_NAME" },
        { JOB_NOTIFY_FIELD_MACHINE_NAME, "JOB_NOTIFY_FIELD_MACHINE_NAME" },
@@ -4034,7 +4034,7 @@ static int spoolss_dissect_element_NotifyOptionType_u3(tvbuff_t *tvb _U_, int of
 static int spoolss_dissect_element_NotifyOptionType_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_NotifyOptionType_fields(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type);
 static int spoolss_dissect_element_NotifyOptionType_fields_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type);
-static int spoolss_dissect_element_NotifyOptionType_fields__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type);
+static int spoolss_dissect_element_NotifyOptionType_fields__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static const true_false_string spoolssNotifyOptionFlags_PRINTER_NOTIFY_OPTIONS_REFRESH_tfs = {
    "PRINTER_NOTIFY_OPTIONS_REFRESH is SET",
    "PRINTER_NOTIFY_OPTIONS_REFRESH is NOT SET",
@@ -4255,7 +4255,7 @@ const value_string spoolss_BIDI_TYPE_vals[] = {
 static int spoolss_dissect_element_RPC_BINARY_CONTAINER_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_RPC_BIDI_DATA_u_bData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_RPC_BIDI_DATA_u_bData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_RPC_BIDI_DATA_u_iData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -4293,7 +4293,7 @@ static int spoolss_dissect_element_CorePrinterDriver_core_driver_guid(tvbuff_t *
 static int spoolss_dissect_element_CorePrinterDriver_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_CorePrinterDriver_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_CorePrinterDriver_formname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int spoolss_dissect_element_CorePrinterDriver_formname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_CorePrinterDriver_formname_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 const value_string spoolss_RPC_EPrintPropertyType_vals[] = {
        { kRpcPropertyTypeString, "kRpcPropertyTypeString" },
        { kRpcPropertyTypeInt32, "kRpcPropertyTypeInt32" },
@@ -4305,7 +4305,7 @@ const value_string spoolss_RPC_EPrintPropertyType_vals[] = {
 static int spoolss_dissect_element_propertyBlob_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_propertyBlob_pBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_propertyBlob_pBuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int spoolss_dissect_element_propertyBlob_pBuf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_propertyBlob_pBuf__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyInt32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -4583,7 +4583,7 @@ static int spoolss_dissect_element_ReadPrinter_handle(tvbuff_t *tvb _U_, int off
 static int spoolss_dissect_element_ReadPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_ReadPrinter_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_ReadPrinter_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int spoolss_dissect_element_ReadPrinter_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReadPrinter_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_ReadPrinter_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_ReadPrinter__data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_ReadPrinter__data_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -4594,7 +4594,7 @@ static int spoolss_dissect_element_AddJob_handle_(tvbuff_t *tvb _U_, int offset
 static int spoolss_dissect_element_AddJob_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_AddJob_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_AddJob_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int spoolss_dissect_element_AddJob_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddJob_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_AddJob_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_AddJob_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_AddJob_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -4608,7 +4608,7 @@ static int spoolss_dissect_element_GetPrinterData_type(tvbuff_t *tvb _U_, int of
 static int spoolss_dissect_element_GetPrinterData_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_GetPrinterData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_GetPrinterData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int spoolss_dissect_element_GetPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_GetPrinterData_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_GetPrinterData_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_GetPrinterData_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -4618,7 +4618,7 @@ static int spoolss_dissect_element_SetPrinterData_value_name(tvbuff_t *tvb _U_,
 static int spoolss_dissect_element_SetPrinterData_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_SetPrinterData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_SetPrinterData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int spoolss_dissect_element_SetPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_SetPrinterData_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_ClosePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_ClosePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -4755,11 +4755,11 @@ static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_gdi_handle(tvbuff_t
 static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_gdi_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_cIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_cOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_ul(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_DeletePrinterIC_gdi_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -4836,7 +4836,7 @@ static int spoolss_dissect_element_ReplyOpenPrinter_type(tvbuff_t *tvb _U_, int
 static int spoolss_dissect_element_ReplyOpenPrinter_bufsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_ReplyOpenPrinter_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_ReplyOpenPrinter_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int spoolss_dissect_element_ReplyOpenPrinter_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReplyOpenPrinter_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_ReplyOpenPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_ReplyOpenPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_RouterReplyPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -4845,7 +4845,7 @@ static int spoolss_dissect_element_RouterReplyPrinter_flags(tvbuff_t *tvb _U_, i
 static int spoolss_dissect_element_RouterReplyPrinter_bufsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_RouterReplyPrinter_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_RouterReplyPrinter_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int spoolss_dissect_element_RouterReplyPrinter_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterReplyPrinter_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_ReplyClosePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_ReplyClosePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_AddPortEx_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -4920,7 +4920,7 @@ static int spoolss_dissect_element_EnumPrinterData_type(tvbuff_t *tvb _U_, int o
 static int spoolss_dissect_element_EnumPrinterData_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_EnumPrinterData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_EnumPrinterData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int spoolss_dissect_element_EnumPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_EnumPrinterData_data_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_EnumPrinterData_data_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_EnumPrinterData_data_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -4934,7 +4934,7 @@ static int spoolss_dissect_element_SetPrinterDataEx_value_name(tvbuff_t *tvb _U_
 static int spoolss_dissect_element_SetPrinterDataEx_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_SetPrinterDataEx_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_SetPrinterDataEx_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int spoolss_dissect_element_SetPrinterDataEx_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterDataEx_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_SetPrinterDataEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_GetPrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_GetPrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -4944,7 +4944,7 @@ static int spoolss_dissect_element_GetPrinterDataEx_type(tvbuff_t *tvb _U_, int
 static int spoolss_dissect_element_GetPrinterDataEx_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_GetPrinterDataEx_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_GetPrinterDataEx_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int spoolss_dissect_element_GetPrinterDataEx_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDataEx_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_GetPrinterDataEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_GetPrinterDataEx_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_GetPrinterDataEx_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -5015,7 +5015,7 @@ static int spoolss_dissect_element_XcvData_in_data(tvbuff_t *tvb _U_, int offset
 static int spoolss_dissect_element_XcvData__in_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_XcvData_out_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_XcvData_out_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int spoolss_dissect_element_XcvData_out_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_XcvData_out_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_XcvData_out_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_XcvData_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int spoolss_dissect_element_XcvData_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -6399,9 +6399,11 @@ spoolss_dissect_element_PSDRVEXTRA351_dwFlags(tvbuff_t *tvb _U_, int offset _U_,
 static int
 spoolss_dissect_element_PSDRVEXTRA351_wchEPSFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 12; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PSDRVEXTRA351_wchEPSFile_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -6609,9 +6611,11 @@ spoolss_dissect_element_PSDRVEXTRA400_dwFlags(tvbuff_t *tvb _U_, int offset _U_,
 static int
 spoolss_dissect_element_PSDRVEXTRA400_wchEPSFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 12; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PSDRVEXTRA400_wchEPSFile_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -6739,9 +6743,11 @@ spoolss_dissect_element_PSDRVEXTRA400_wOptions(tvbuff_t *tvb _U_, int offset _U_
 static int
 spoolss_dissect_element_PSDRVEXTRA400_aubOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 8; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PSDRVEXTRA400_aubOptions_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -6965,9 +6971,11 @@ spoolss_dissect_element_PSDRVEXTRA500_dwFlags(tvbuff_t *tvb _U_, int offset _U_,
 static int
 spoolss_dissect_element_PSDRVEXTRA500_wchEPSFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 12; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PSDRVEXTRA500_wchEPSFile_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -7223,9 +7231,11 @@ spoolss_dissect_element_PSDRVEXTRA500_wCutSheet(tvbuff_t *tvb _U_, int offset _U
 static int
 spoolss_dissect_element_PSDRVEXTRA500_dwReserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 4; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PSDRVEXTRA500_dwReserved3_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -7257,9 +7267,11 @@ spoolss_dissect_element_PSDRVEXTRA500_dwOptions(tvbuff_t *tvb _U_, int offset _U
 static int
 spoolss_dissect_element_PSDRVEXTRA500_aOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 128; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PSDRVEXTRA500_aOptions_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -7438,9 +7450,11 @@ spoolss_dissect_element_PSDRVEXTRA_dwFlags(tvbuff_t *tvb _U_, int offset _U_, pa
 static int
 spoolss_dissect_element_PSDRVEXTRA_wchEPSFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 12; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PSDRVEXTRA_wchEPSFile_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -7696,9 +7710,11 @@ spoolss_dissect_element_PSDRVEXTRA_wCutSheet(tvbuff_t *tvb _U_, int offset _U_,
 static int
 spoolss_dissect_element_PSDRVEXTRA_dwReserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 4; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PSDRVEXTRA_dwReserved3_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -7730,9 +7746,11 @@ spoolss_dissect_element_PSDRVEXTRA_dwOptions(tvbuff_t *tvb _U_, int offset _U_,
 static int
 spoolss_dissect_element_PSDRVEXTRA_aOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 128; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PSDRVEXTRA_aOptions_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -7895,9 +7913,11 @@ spoolss_dissect_struct_PSDRVEXTRA(tvbuff_t *tvb _U_, int offset _U_, packet_info
 static int
 spoolss_dissect_element_UNIDRVEXTRA3_4_wReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 56; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_UNIDRVEXTRA3_4_wReserved_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -8119,9 +8139,11 @@ spoolss_dissect_element_UNIDRVEXTRA500_iQuality(tvbuff_t *tvb _U_, int offset _U
 static int
 spoolss_dissect_element_UNIDRVEXTRA500_wReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 6; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_UNIDRVEXTRA500_wReserved_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -8145,9 +8167,11 @@ spoolss_dissect_element_UNIDRVEXTRA500_dwOptions(tvbuff_t *tvb _U_, int offset _
 static int
 spoolss_dissect_element_UNIDRVEXTRA500_aOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 128; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_UNIDRVEXTRA500_aOptions_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -8317,9 +8341,11 @@ spoolss_dissect_element_UNIDRVEXTRA_iQuality(tvbuff_t *tvb _U_, int offset _U_,
 static int
 spoolss_dissect_element_UNIDRVEXTRA_wReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 6; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_UNIDRVEXTRA_wReserved_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -8343,9 +8369,11 @@ spoolss_dissect_element_UNIDRVEXTRA_dwOptions(tvbuff_t *tvb _U_, int offset _U_,
 static int
 spoolss_dissect_element_UNIDRVEXTRA_aOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 128; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_UNIDRVEXTRA_aOptions_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -23917,15 +23945,15 @@ spoolss_dissect_element_PortVarContainer_monitor_data(tvbuff_t *tvb _U_, int off
 static int
 spoolss_dissect_element_PortVarContainer_monitor_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PortVarContainer_monitor_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PortVarContainer_monitor_data__);
 
        return offset;
 }
 
 static int
-spoolss_dissect_element_PortVarContainer_monitor_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+spoolss_dissect_element_PortVarContainer_monitor_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortVarContainer_monitor_data, 0);
+       proto_tree_add_bytes(tree, hf_spoolss_spoolss_PortVarContainer_monitor_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -24200,9 +24228,9 @@ spoolss_dissect_element_NotifyOptionType_fields_(tvbuff_t *tvb _U_, int offset _
 }
 
 static int
-spoolss_dissect_element_NotifyOptionType_fields__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type)
+spoolss_dissect_element_NotifyOptionType_fields__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = spoolss_dissect_Field(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyOptionType_fields, *type);
+       offset = spoolss_dissect_Field(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyOptionType_fields, *0);
 
        return offset;
 }
@@ -24485,9 +24513,11 @@ spoolss_dissect_enum_NotifyTable(tvbuff_t *tvb _U_, int offset _U_, packet_info
 static int
 spoolss_dissect_element_NotifyData_integer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 2; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_NotifyData_integer_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -25690,9 +25720,11 @@ spoolss_dissect_enum_PortProtocol(tvbuff_t *tvb _U_, int offset _U_, packet_info
 static int
 spoolss_dissect_element_PortData1_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 64; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PortData1_portname_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -25740,9 +25772,11 @@ spoolss_dissect_element_PortData1_reserved(tvbuff_t *tvb _U_, int offset _U_, pa
 static int
 spoolss_dissect_element_PortData1_hostaddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 49; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PortData1_hostaddress_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -25758,9 +25792,11 @@ spoolss_dissect_element_PortData1_hostaddress_(tvbuff_t *tvb _U_, int offset _U_
 static int
 spoolss_dissect_element_PortData1_snmpcommunity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 33; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PortData1_snmpcommunity_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -25784,9 +25820,11 @@ spoolss_dissect_element_PortData1_dblspool(tvbuff_t *tvb _U_, int offset _U_, pa
 static int
 spoolss_dissect_element_PortData1_queue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 33; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PortData1_queue_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -25802,9 +25840,11 @@ spoolss_dissect_element_PortData1_queue_(tvbuff_t *tvb _U_, int offset _U_, pack
 static int
 spoolss_dissect_element_PortData1_ip_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 16; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PortData1_ip_address_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -25820,9 +25860,11 @@ spoolss_dissect_element_PortData1_ip_address_(tvbuff_t *tvb _U_, int offset _U_,
 static int
 spoolss_dissect_element_PortData1_hardware_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 13; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PortData1_hardware_address_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -25838,9 +25880,11 @@ spoolss_dissect_element_PortData1_hardware_address_(tvbuff_t *tvb _U_, int offse
 static int
 spoolss_dissect_element_PortData1_device_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 257; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PortData1_device_type_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -25956,9 +26000,11 @@ spoolss_dissect_struct_PortData1(tvbuff_t *tvb _U_, int offset _U_, packet_info
 static int
 spoolss_dissect_element_PortData2_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 64; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PortData2_portname_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -26006,9 +26052,11 @@ spoolss_dissect_element_PortData2_reserved(tvbuff_t *tvb _U_, int offset _U_, pa
 static int
 spoolss_dissect_element_PortData2_hostaddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 128; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PortData2_hostaddress_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -26024,9 +26072,11 @@ spoolss_dissect_element_PortData2_hostaddress_(tvbuff_t *tvb _U_, int offset _U_
 static int
 spoolss_dissect_element_PortData2_snmpcommunity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 33; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PortData2_snmpcommunity_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -26050,9 +26100,11 @@ spoolss_dissect_element_PortData2_dblspool(tvbuff_t *tvb _U_, int offset _U_, pa
 static int
 spoolss_dissect_element_PortData2_queue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 33; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PortData2_queue_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -26068,9 +26120,11 @@ spoolss_dissect_element_PortData2_queue_(tvbuff_t *tvb _U_, int offset _U_, pack
 static int
 spoolss_dissect_element_PortData2_device_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 257; i++)
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
                offset = spoolss_dissect_element_PortData2_device_type_(tvb, offset, pinfo, tree, drep);
+       }
 
        return offset;
 }
@@ -26368,15 +26422,15 @@ spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString(tvbuff_t *tvb _U_, int of
 static int
 spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString__);
 
        return offset;
 }
 
 static int
-spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BINARY_CONTAINER_pszString, 0);
+       proto_tree_add_bytes(tree, hf_spoolss_RPC_BINARY_CONTAINER_pszString, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -27001,17 +27055,19 @@ spoolss_dissect_element_CorePrinterDriver_driver_version(tvbuff_t *tvb _U_, int
 static int
 spoolss_dissect_element_CorePrinterDriver_formname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 520; i++)
-               offset = spoolss_dissect_element_CorePrinterDriver_formname_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = spoolss_dissect_element_CorePrinterDriver_formname_(tvb, offset, 520, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-spoolss_dissect_element_CorePrinterDriver_formname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+spoolss_dissect_element_CorePrinterDriver_formname_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_CorePrinterDriver_formname, 0);
+       proto_tree_add_bytes(tree, hf_spoolss_spoolss_CorePrinterDriver_formname, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -27100,15 +27156,15 @@ spoolss_dissect_element_propertyBlob_pBuf(tvbuff_t *tvb _U_, int offset _U_, pac
 static int
 spoolss_dissect_element_propertyBlob_pBuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_propertyBlob_pBuf__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_propertyBlob_pBuf__);
 
        return offset;
 }
 
 static int
-spoolss_dissect_element_propertyBlob_pBuf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+spoolss_dissect_element_propertyBlob_pBuf__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_propertyBlob_pBuf, 0);
+       proto_tree_add_bytes(tree, hf_spoolss_propertyBlob_pBuf, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -30817,15 +30873,15 @@ spoolss_dissect_element_ReadPrinter_data(tvbuff_t *tvb _U_, int offset _U_, pack
 static int
 spoolss_dissect_element_ReadPrinter_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReadPrinter_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReadPrinter_data__);
 
        return offset;
 }
 
 static int
-spoolss_dissect_element_ReadPrinter_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+spoolss_dissect_element_ReadPrinter_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReadPrinter_data, 0);
+       proto_tree_add_bytes(tree, hf_spoolss_spoolss_ReadPrinter_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -30970,15 +31026,15 @@ spoolss_dissect_element_AddJob_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_
 static int
 spoolss_dissect_element_AddJob_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddJob_buffer__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddJob_buffer__);
 
        return offset;
 }
 
 static int
-spoolss_dissect_element_AddJob_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+spoolss_dissect_element_AddJob_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddJob_buffer, 0);
+       proto_tree_add_bytes(tree, hf_spoolss_spoolss_AddJob_buffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -31158,15 +31214,15 @@ spoolss_dissect_element_GetPrinterData_data(tvbuff_t *tvb _U_, int offset _U_, p
 static int
 spoolss_dissect_element_GetPrinterData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterData_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterData_data__);
 
        return offset;
 }
 
 static int
-spoolss_dissect_element_GetPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+spoolss_dissect_element_GetPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterData_data, 0);
+       proto_tree_add_bytes(tree, hf_spoolss_spoolss_GetPrinterData_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -31286,15 +31342,15 @@ spoolss_dissect_element_SetPrinterData_data(tvbuff_t *tvb _U_, int offset _U_, p
 static int
 spoolss_dissect_element_SetPrinterData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterData_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterData_data__);
 
        return offset;
 }
 
 static int
-spoolss_dissect_element_SetPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+spoolss_dissect_element_SetPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterData_data, 0);
+       proto_tree_add_bytes(tree, hf_spoolss_spoolss_SetPrinterData_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -33153,15 +33209,15 @@ spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn(tvbuff_t *tvb _U_, int offs
 static int
 spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn__);
 
        return offset;
 }
 
 static int
-spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pIn, 0);
+       proto_tree_add_bytes(tree, hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pIn, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -33185,15 +33241,15 @@ spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut(tvbuff_t *tvb _U_, int off
 static int
 spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut__);
 
        return offset;
 }
 
 static int
-spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pOut, 0);
+       proto_tree_add_bytes(tree, hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pOut, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -34449,15 +34505,15 @@ spoolss_dissect_element_ReplyOpenPrinter_buffer(tvbuff_t *tvb _U_, int offset _U
 static int
 spoolss_dissect_element_ReplyOpenPrinter_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReplyOpenPrinter_buffer__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReplyOpenPrinter_buffer__);
 
        return offset;
 }
 
 static int
-spoolss_dissect_element_ReplyOpenPrinter_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+spoolss_dissect_element_ReplyOpenPrinter_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReplyOpenPrinter_buffer, 0);
+       proto_tree_add_bytes(tree, hf_spoolss_spoolss_ReplyOpenPrinter_buffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -34564,15 +34620,15 @@ spoolss_dissect_element_RouterReplyPrinter_buffer(tvbuff_t *tvb _U_, int offset
 static int
 spoolss_dissect_element_RouterReplyPrinter_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RouterReplyPrinter_buffer__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RouterReplyPrinter_buffer__);
 
        return offset;
 }
 
 static int
-spoolss_dissect_element_RouterReplyPrinter_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+spoolss_dissect_element_RouterReplyPrinter_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinter_buffer, 0);
+       proto_tree_add_bytes(tree, hf_spoolss_spoolss_RouterReplyPrinter_buffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -35631,15 +35687,15 @@ spoolss_dissect_element_EnumPrinterData_data(tvbuff_t *tvb _U_, int offset _U_,
 static int
 spoolss_dissect_element_EnumPrinterData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterData_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterData_data__);
 
        return offset;
 }
 
 static int
-spoolss_dissect_element_EnumPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+spoolss_dissect_element_EnumPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterData_data, 0);
+       proto_tree_add_bytes(tree, hf_spoolss_spoolss_EnumPrinterData_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -35913,15 +35969,15 @@ spoolss_dissect_element_SetPrinterDataEx_data(tvbuff_t *tvb _U_, int offset _U_,
 static int
 spoolss_dissect_element_SetPrinterDataEx_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterDataEx_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterDataEx_data__);
 
        return offset;
 }
 
 static int
-spoolss_dissect_element_SetPrinterDataEx_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+spoolss_dissect_element_SetPrinterDataEx_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterDataEx_data, 0);
+       proto_tree_add_bytes(tree, hf_spoolss_spoolss_SetPrinterDataEx_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -36041,15 +36097,15 @@ spoolss_dissect_element_GetPrinterDataEx_data(tvbuff_t *tvb _U_, int offset _U_,
 static int
 spoolss_dissect_element_GetPrinterDataEx_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDataEx_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDataEx_data__);
 
        return offset;
 }
 
 static int
-spoolss_dissect_element_GetPrinterDataEx_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+spoolss_dissect_element_GetPrinterDataEx_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDataEx_data, 0);
+       proto_tree_add_bytes(tree, hf_spoolss_spoolss_GetPrinterDataEx_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -37094,15 +37150,15 @@ spoolss_dissect_element_XcvData_out_data(tvbuff_t *tvb _U_, int offset _U_, pack
 static int
 spoolss_dissect_element_XcvData_out_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_XcvData_out_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_XcvData_out_data__);
 
        return offset;
 }
 
 static int
-spoolss_dissect_element_XcvData_out_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+spoolss_dissect_element_XcvData_out_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_XcvData_out_data, 0);
+       proto_tree_add_bytes(tree, hf_spoolss_spoolss_XcvData_out_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -38953,7 +39009,7 @@ void proto_register_dcerpc_spoolss(void)
        { &hf_spoolss_spoolss_EnumPorts_buffer,
          { "Buffer", "spoolss.spoolss_EnumPorts.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_PortVarContainer_monitor_data,
-         { "Monitor Data", "spoolss.spoolss_PortVarContainer.monitor_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Monitor Data", "spoolss.spoolss_PortVarContainer.monitor_data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_OSVersionEx_service_pack_major,
          { "Service Pack Major", "spoolss.spoolss_OSVersionEx.service_pack_major", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_DriverInfo5_config_file,
@@ -39545,7 +39601,7 @@ void proto_register_dcerpc_spoolss(void)
        { &hf_spoolss__spoolss_EnumPrinterDataEx_offered,
          { "Offered", "spoolss._spoolss_EnumPrinterDataEx.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_RouterReplyPrinter_buffer,
-         { "Buffer", "spoolss.spoolss_RouterReplyPrinter.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Buffer", "spoolss.spoolss_RouterReplyPrinter.buffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_SetPrinterInfo6_status,
          { "Status", "spoolss.spoolss_SetPrinterInfo6.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_PrinterInfo0_free_build,
@@ -39607,7 +39663,7 @@ void proto_register_dcerpc_spoolss(void)
        { &hf_spoolss_spoolss_AddDriverInfo8_driver_version,
          { "Driver Version", "spoolss.spoolss_AddDriverInfo8.driver_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pOut,
-         { "Pout", "spoolss.spoolss_PlayGDIScriptOnPrinterIC.pOut", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Pout", "spoolss.spoolss_PlayGDIScriptOnPrinterIC.pOut", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_SetPrinterInfo2_sepfile,
          { "Sepfile", "spoolss.spoolss_SetPrinterInfo2.sepfile", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_GetPrinterDriver_info,
@@ -39871,7 +39927,7 @@ void proto_register_dcerpc_spoolss(void)
        { &hf_spoolss_spoolss_AddPrinterEx_devmode_ctr,
          { "Devmode Ctr", "spoolss.spoolss_AddPrinterEx.devmode_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_SetPrinterDataEx_data,
-         { "Data", "spoolss.spoolss_SetPrinterDataEx.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "spoolss.spoolss_SetPrinterDataEx.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_CreatePrinterIC_handle,
          { "Handle", "spoolss.spoolss_CreatePrinterIC.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_DriverInfo6_help_file,
@@ -39971,7 +40027,7 @@ void proto_register_dcerpc_spoolss(void)
        { &hf_spoolss_spoolss_PortInfo3_severity,
          { "Severity", "spoolss.spoolss_PortInfo3.severity", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_PortSeverity_vals), 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_XcvData_out_data,
-         { "Out Data", "spoolss.spoolss_XcvData.out_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Out Data", "spoolss.spoolss_XcvData.out_data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_EnumPrintProcDataTypes_servername,
          { "Servername", "spoolss.spoolss_EnumPrintProcDataTypes.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_GetPrinterDriverDirectory_info,
@@ -40083,7 +40139,7 @@ void proto_register_dcerpc_spoolss(void)
        { &hf_spoolss_spoolss_UNIDRVEXTRA500_dwChecksum32,
          { "Dwchecksum32", "spoolss.spoolss_UNIDRVEXTRA500.dwChecksum32", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_ReadPrinter_data,
-         { "Data", "spoolss.spoolss_ReadPrinter.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "spoolss.spoolss_ReadPrinter.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_DriverInfo_info2,
          { "Info2", "spoolss.spoolss_DriverInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_DriverInfo5_version,
@@ -40535,7 +40591,7 @@ void proto_register_dcerpc_spoolss(void)
        { &hf_spoolss_RPC_BIDI_DATA_u,
          { "U", "spoolss.RPC_BIDI_DATA.u", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_RPC_BINARY_CONTAINER_pszString,
-         { "Pszstring", "spoolss.RPC_BINARY_CONTAINER.pszString", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Pszstring", "spoolss.RPC_BINARY_CONTAINER.pszString", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_DeletePrinterDriverEx_version,
          { "Version", "spoolss.spoolss_DeletePrinterDriverEx.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_EnumJobs_needed,
@@ -40549,7 +40605,7 @@ void proto_register_dcerpc_spoolss(void)
        { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_LOCAL,
          { "Printer Attribute Local", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_LOCAL", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_LOCAL_tfs), ( 0x00000040 ), NULL, HFILL }},
        { &hf_spoolss_spoolss_CorePrinterDriver_formname,
-         { "Formname", "spoolss.spoolss_CorePrinterDriver.formname", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Formname", "spoolss.spoolss_CorePrinterDriver.formname", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss__spoolss_EnumPrintProcDataTypes_count,
          { "Count", "spoolss._spoolss_EnumPrintProcDataTypes.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_AddPortEx_port_ctr,
@@ -40751,7 +40807,7 @@ void proto_register_dcerpc_spoolss(void)
        { &hf_spoolss_spoolss_RouterReplyPrinterEx_flags,
          { "Flags", "spoolss.spoolss_RouterReplyPrinterEx.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_AddJob_buffer,
-         { "Buffer", "spoolss.spoolss_AddJob.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Buffer", "spoolss.spoolss_AddJob.buffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_PSDRVEXTRA_caSize,
          { "Casize", "spoolss.spoolss_PSDRVEXTRA.caSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_AddJob_offered,
@@ -40981,7 +41037,7 @@ void proto_register_dcerpc_spoolss(void)
        { &hf_spoolss_spoolss_SetJobInfo2_driver_name,
          { "Driver Name", "spoolss.spoolss_SetJobInfo2.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pIn,
-         { "Pin", "spoolss.spoolss_PlayGDIScriptOnPrinterIC.pIn", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Pin", "spoolss.spoolss_PlayGDIScriptOnPrinterIC.pIn", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_AddDriverInfo8_version,
          { "Version", "spoolss.spoolss_AddDriverInfo8.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_PortData1_port_number,
@@ -41331,7 +41387,7 @@ void proto_register_dcerpc_spoolss(void)
        { &hf_spoolss_spoolss_SetPrinterInfo2_portname,
          { "Portname", "spoolss.spoolss_SetPrinterInfo2.portname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_EnumPrinterData_data,
-         { "Data", "spoolss.spoolss_EnumPrinterData.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "spoolss.spoolss_EnumPrinterData.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss__spoolss_EnumPrintProcessors_info,
          { "Info", "spoolss._spoolss_EnumPrintProcessors.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_DocumentInfoCtr_info,
@@ -41431,7 +41487,7 @@ void proto_register_dcerpc_spoolss(void)
        { &hf_spoolss_spoolss_PortInfo3_status_string,
          { "Status String", "spoolss.spoolss_PortInfo3.status_string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_SetPrinterData_data,
-         { "Data", "spoolss.spoolss_SetPrinterData.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "spoolss.spoolss_SetPrinterData.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_SetJobInfo4__devmode_ptr,
          { " Devmode Ptr", "spoolss.spoolss_SetJobInfo4._devmode_ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_GetJob_level,
@@ -41483,7 +41539,7 @@ void proto_register_dcerpc_spoolss(void)
        { &hf_spoolss_spoolss_PSDRVEXTRA_iPSLevel,
          { "Ipslevel", "spoolss.spoolss_PSDRVEXTRA.iPSLevel", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DMPS_PSLevel_vals), 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_GetPrinterDataEx_data,
-         { "Data", "spoolss.spoolss_GetPrinterDataEx.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "spoolss.spoolss_GetPrinterDataEx.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_AddPrinter_server,
          { "Server", "spoolss.spoolss_AddPrinter.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON3,
@@ -41719,7 +41775,7 @@ void proto_register_dcerpc_spoolss(void)
        { &hf_spoolss_spoolss_PrinterInfo2_devmode,
          { "Devmode", "spoolss.spoolss_PrinterInfo2.devmode", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_GetPrinterData_data,
-         { "Data", "spoolss.spoolss_GetPrinterData.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "spoolss.spoolss_GetPrinterData.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_handle,
          { "Handle", "spoolss.spoolss_RouterRefreshPrinterChangeNotify.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_COMPLETE,
@@ -41781,7 +41837,7 @@ void proto_register_dcerpc_spoolss(void)
        { &hf_spoolss_spoolss_AddPort_server_name,
          { "Server Name", "spoolss.spoolss_AddPort.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_propertyBlob_pBuf,
-         { "Pbuf", "spoolss.propertyBlob.pBuf", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Pbuf", "spoolss.propertyBlob.pBuf", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_EnumPrinters_offered,
          { "Offered", "spoolss.spoolss_EnumPrinters.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_DriverInfo7_driver_name,
@@ -41815,7 +41871,7 @@ void proto_register_dcerpc_spoolss(void)
        { &hf_spoolss_spoolss_PSDRVEXTRA500_fxScrFreq,
          { "Fxscrfreq", "spoolss.spoolss_PSDRVEXTRA500.fxScrFreq", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_ReplyOpenPrinter_buffer,
-         { "Buffer", "spoolss.spoolss_ReplyOpenPrinter.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Buffer", "spoolss.spoolss_ReplyOpenPrinter.buffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_spoolss_spoolss_AccessRights_SERVER_ACCESS_ADMINISTER,
          { "Server Access Administer", "spoolss.spoolss_AccessRights.SERVER_ACCESS_ADMINISTER", FT_BOOLEAN, 32, TFS(&spoolss_AccessRights_SERVER_ACCESS_ADMINISTER_tfs), ( 0x00000001 ), NULL, HFILL }},
        { &hf_spoolss_spoolss_JobInfo_info1,
index e1b3fc905232329b1afcd3a7cfac260c4ad50648..9a6dda672967760856f1ffed48feee1cbf38faef 100644 (file)
@@ -1735,7 +1735,7 @@ static int srvsvc_dissect_element_NetTransportInfo0_name(tvbuff_t *tvb _U_, int
 static int srvsvc_dissect_element_NetTransportInfo0_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo0_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo0_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int srvsvc_dissect_element_NetTransportInfo0_addr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo0_addr__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo0_addr_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo0_net_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo0_net_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1748,7 +1748,7 @@ static int srvsvc_dissect_element_NetTransportInfo1_name(tvbuff_t *tvb _U_, int
 static int srvsvc_dissect_element_NetTransportInfo1_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo1_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo1_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int srvsvc_dissect_element_NetTransportInfo1_addr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo1_addr__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo1_addr_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo1_net_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo1_net_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1763,7 +1763,7 @@ static int srvsvc_dissect_element_NetTransportInfo2_name(tvbuff_t *tvb _U_, int
 static int srvsvc_dissect_element_NetTransportInfo2_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo2_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo2_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int srvsvc_dissect_element_NetTransportInfo2_addr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo2_addr__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo2_addr_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo2_net_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo2_net_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1779,7 +1779,7 @@ static int srvsvc_dissect_element_NetTransportInfo3_name(tvbuff_t *tvb _U_, int
 static int srvsvc_dissect_element_NetTransportInfo3_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo3_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo3_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int srvsvc_dissect_element_NetTransportInfo3_addr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo3_addr__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo3_addr_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo3_net_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo3_net_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1788,7 +1788,7 @@ static int srvsvc_dissect_element_NetTransportInfo3_domain_(tvbuff_t *tvb _U_, i
 static int srvsvc_dissect_element_NetTransportInfo3_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo3_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportInfo3_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int srvsvc_dissect_element_NetTransportInfo3_unknown3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo3_unknown3_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportCtr3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportCtr3_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetTransportCtr3_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -2035,7 +2035,7 @@ static int srvsvc_dissect_element_NetPathCanonicalize_server_unc(tvbuff_t *tvb _
 static int srvsvc_dissect_element_NetPathCanonicalize_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetPathCanonicalize_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetPathCanonicalize_can_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int srvsvc_dissect_element_NetPathCanonicalize_can_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathCanonicalize_can_path_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetPathCanonicalize_maxbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetPathCanonicalize_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int srvsvc_dissect_element_NetPathCanonicalize_pathtype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -13954,15 +13954,15 @@ srvsvc_dissect_element_NetTransportInfo0_addr(tvbuff_t *tvb _U_, int offset _U_,
 static int
 srvsvc_dissect_element_NetTransportInfo0_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo0_addr__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo0_addr__);
 
        return offset;
 }
 
 static int
-srvsvc_dissect_element_NetTransportInfo0_addr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+srvsvc_dissect_element_NetTransportInfo0_addr__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo0_addr, 0);
+       proto_tree_add_bytes(tree, hf_srvsvc_srvsvc_NetTransportInfo0_addr, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -14150,15 +14150,15 @@ srvsvc_dissect_element_NetTransportInfo1_addr(tvbuff_t *tvb _U_, int offset _U_,
 static int
 srvsvc_dissect_element_NetTransportInfo1_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo1_addr__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo1_addr__);
 
        return offset;
 }
 
 static int
-srvsvc_dissect_element_NetTransportInfo1_addr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+srvsvc_dissect_element_NetTransportInfo1_addr__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo1_addr, 0);
+       proto_tree_add_bytes(tree, hf_srvsvc_srvsvc_NetTransportInfo1_addr, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -14368,15 +14368,15 @@ srvsvc_dissect_element_NetTransportInfo2_addr(tvbuff_t *tvb _U_, int offset _U_,
 static int
 srvsvc_dissect_element_NetTransportInfo2_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo2_addr__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo2_addr__);
 
        return offset;
 }
 
 static int
-srvsvc_dissect_element_NetTransportInfo2_addr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+srvsvc_dissect_element_NetTransportInfo2_addr__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo2_addr, 0);
+       proto_tree_add_bytes(tree, hf_srvsvc_srvsvc_NetTransportInfo2_addr, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -14598,15 +14598,15 @@ srvsvc_dissect_element_NetTransportInfo3_addr(tvbuff_t *tvb _U_, int offset _U_,
 static int
 srvsvc_dissect_element_NetTransportInfo3_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo3_addr__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo3_addr__);
 
        return offset;
 }
 
 static int
-srvsvc_dissect_element_NetTransportInfo3_addr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+srvsvc_dissect_element_NetTransportInfo3_addr__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo3_addr, 0);
+       proto_tree_add_bytes(tree, hf_srvsvc_srvsvc_NetTransportInfo3_addr, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -14676,17 +14676,19 @@ srvsvc_dissect_element_NetTransportInfo3_unknown2(tvbuff_t *tvb _U_, int offset
 static int
 srvsvc_dissect_element_NetTransportInfo3_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 256; i++)
-               offset = srvsvc_dissect_element_NetTransportInfo3_unknown3_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = srvsvc_dissect_element_NetTransportInfo3_unknown3_(tvb, offset, 256, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-srvsvc_dissect_element_NetTransportInfo3_unknown3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+srvsvc_dissect_element_NetTransportInfo3_unknown3_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo3_unknown3, 0);
+       proto_tree_add_bytes(tree, hf_srvsvc_srvsvc_NetTransportInfo3_unknown3, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -18319,15 +18321,15 @@ srvsvc_dissect_element_NetPathCanonicalize_path(tvbuff_t *tvb _U_, int offset _U
 static int
 srvsvc_dissect_element_NetPathCanonicalize_can_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetPathCanonicalize_can_path_);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetPathCanonicalize_can_path_);
 
        return offset;
 }
 
 static int
-srvsvc_dissect_element_NetPathCanonicalize_can_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+srvsvc_dissect_element_NetPathCanonicalize_can_path_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetPathCanonicalize_can_path, 0);
+       proto_tree_add_bytes(tree, hf_srvsvc_srvsvc_NetPathCanonicalize_can_path, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -19969,7 +19971,7 @@ void proto_register_dcerpc_srvsvc(void)
        { &hf_srvsvc_srvsvc_NetShareCtr_ctr501,
          { "Ctr501", "srvsvc.srvsvc_NetShareCtr.ctr501", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_srvsvc_srvsvc_NetTransportInfo0_addr,
-         { "Addr", "srvsvc.srvsvc_NetTransportInfo0.addr", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Addr", "srvsvc.srvsvc_NetTransportInfo0.addr", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_srvsvc_srvsvc_NetSrvInfo599_opensearch,
          { "Opensearch", "srvsvc.srvsvc_NetSrvInfo599.opensearch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_srvsvc_srvsvc_NetFileCtr3_array,
@@ -20235,7 +20237,7 @@ void proto_register_dcerpc_srvsvc(void)
        { &hf_srvsvc_srvsvc_NetSrvInfo502_sesssvc,
          { "Sesssvc", "srvsvc.srvsvc_NetSrvInfo502.sesssvc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_srvsvc_srvsvc_NetTransportInfo3_unknown3,
-         { "Unknown3", "srvsvc.srvsvc_NetTransportInfo3.unknown3", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Unknown3", "srvsvc.srvsvc_NetTransportInfo3.unknown3", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_srvsvc_srvsvc_NetShareCtr1501_array,
          { "Array", "srvsvc.srvsvc_NetShareCtr1501.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_srvsvc_srvsvc_NetShareSetInfo_parm_error,
@@ -20337,7 +20339,7 @@ void proto_register_dcerpc_srvsvc(void)
        { &hf_srvsvc_srvsvc_NetSrvInfo402_activelocks,
          { "Activelocks", "srvsvc.srvsvc_NetSrvInfo402.activelocks", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_srvsvc_srvsvc_NetTransportInfo2_addr,
-         { "Addr", "srvsvc.srvsvc_NetTransportInfo2.addr", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Addr", "srvsvc.srvsvc_NetTransportInfo2.addr", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_srvsvc_srvsvc_NetSrvInfo102_anndelta,
          { "Anndelta", "srvsvc.srvsvc_NetSrvInfo102.anndelta", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_srvsvc_srvsvc_NetFileGetInfo_server_unc,
@@ -20569,7 +20571,7 @@ void proto_register_dcerpc_srvsvc(void)
        { &hf_srvsvc_srvsvc_NetSrvInfo402_numbigbufs,
          { "Numbigbufs", "srvsvc.srvsvc_NetSrvInfo402.numbigbufs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_srvsvc_srvsvc_NetTransportInfo3_addr,
-         { "Addr", "srvsvc.srvsvc_NetTransportInfo3.addr", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Addr", "srvsvc.srvsvc_NetTransportInfo3.addr", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_CSC_CACHE_NONE,
          { "Share 1005 Csc Cache None", "srvsvc.NetShareInfo1005Flags.SHARE_1005_CSC_CACHE_NONE", FT_BOOLEAN, 32, TFS(&NetShareInfo1005Flags_SHARE_1005_CSC_CACHE_NONE_tfs), ( 0x00000030 ), NULL, HFILL }},
        { &hf_srvsvc_srvsvc_NetShareEnumAll_info_ctr,
@@ -20781,7 +20783,7 @@ void proto_register_dcerpc_srvsvc(void)
        { &hf_srvsvc_srvsvc_NetFileEnum_max_buffer,
          { "Max Buffer", "srvsvc.srvsvc_NetFileEnum.max_buffer", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_srvsvc_srvsvc_NetTransportInfo1_addr,
-         { "Addr", "srvsvc.srvsvc_NetTransportInfo1.addr", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Addr", "srvsvc.srvsvc_NetTransportInfo1.addr", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_srvsvc_srvsvc_NetShareInfo502_type,
          { "Type", "srvsvc.srvsvc_NetShareInfo502.type", FT_UINT32, BASE_DEC, VALS(srvsvc_srvsvc_ShareType_vals), 0, NULL, HFILL }},
        { &hf_srvsvc_srvsvc_NetShareCheck_server_unc,
@@ -21175,7 +21177,7 @@ void proto_register_dcerpc_srvsvc(void)
        { &hf_srvsvc_srvsvc_NetSrvInfo403_numbigbufs,
          { "Numbigbufs", "srvsvc.srvsvc_NetSrvInfo403.numbigbufs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_srvsvc_srvsvc_NetPathCanonicalize_can_path,
-         { "Can Path", "srvsvc.srvsvc_NetPathCanonicalize.can_path", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Can Path", "srvsvc.srvsvc_NetPathCanonicalize.can_path", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_srvsvc_srvsvc_NetShareInfo_info1,
          { "Info1", "srvsvc.srvsvc_NetShareInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_srvsvc_srvsvc_NetTransportEnum_totalentries,
index 67db47c7ecd92023d97421e06b6dc71e9e52981c..bf9aad360a7cfb54c496c6f7113e652e305170e2 100644 (file)
@@ -533,7 +533,7 @@ static int svcctl_dissect_element_QueryServiceObjectSecurity_handle_(tvbuff_t *t
 static int svcctl_dissect_element_QueryServiceObjectSecurity_security_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_QueryServiceObjectSecurity_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_QueryServiceObjectSecurity_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int svcctl_dissect_element_QueryServiceObjectSecurity_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceObjectSecurity_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_QueryServiceObjectSecurity_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_QueryServiceObjectSecurity_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_QueryServiceObjectSecurity_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -542,7 +542,7 @@ static int svcctl_dissect_element_SetServiceObjectSecurity_handle_(tvbuff_t *tvb
 static int svcctl_dissect_element_SetServiceObjectSecurity_security_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_SetServiceObjectSecurity_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_SetServiceObjectSecurity_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int svcctl_dissect_element_SetServiceObjectSecurity_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SetServiceObjectSecurity_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_SetServiceObjectSecurity_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_QueryServiceStatus_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_QueryServiceStatus_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -590,13 +590,13 @@ static int svcctl_dissect_element_CreateServiceW_TagId(tvbuff_t *tvb _U_, int of
 static int svcctl_dissect_element_CreateServiceW_TagId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_CreateServiceW_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_CreateServiceW_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int svcctl_dissect_element_CreateServiceW_dependencies__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_dependencies__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_CreateServiceW_dependencies_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_CreateServiceW_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_CreateServiceW_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_CreateServiceW_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_CreateServiceW_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int svcctl_dissect_element_CreateServiceW_password__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_password__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_CreateServiceW_password_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_CreateServiceW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_CreateServiceW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -605,7 +605,7 @@ static int svcctl_dissect_element_EnumDependentServicesW_service_(tvbuff_t *tvb
 static int svcctl_dissect_element_EnumDependentServicesW_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_EnumDependentServicesW_service_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_EnumDependentServicesW_service_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int svcctl_dissect_element_EnumDependentServicesW_service_status__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesW_service_status__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_EnumDependentServicesW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_EnumDependentServicesW_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_EnumDependentServicesW_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -617,7 +617,7 @@ static int svcctl_dissect_element_EnumServicesStatusW_type(tvbuff_t *tvb _U_, in
 static int svcctl_dissect_element_EnumServicesStatusW_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_EnumServicesStatusW_service(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_EnumServicesStatusW_service_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int svcctl_dissect_element_EnumServicesStatusW_service__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusW_service__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_EnumServicesStatusW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_EnumServicesStatusW_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_EnumServicesStatusW_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -738,7 +738,7 @@ static int svcctl_dissect_element_EnumServicesStatusA_type(tvbuff_t *tvb _U_, in
 static int svcctl_dissect_element_EnumServicesStatusA_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_EnumServicesStatusA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_EnumServicesStatusA_service(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int svcctl_dissect_element_EnumServicesStatusA_service_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusA_service_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_EnumServicesStatusA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_EnumServicesStatusA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_EnumServicesStatusA_services_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -817,7 +817,7 @@ static int svcctl_dissect_element_QueryServiceConfig2W_handle_(tvbuff_t *tvb _U_
 static int svcctl_dissect_element_QueryServiceConfig2W_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_QueryServiceConfig2W_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_QueryServiceConfig2W_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int svcctl_dissect_element_QueryServiceConfig2W_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfig2W_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_QueryServiceConfig2W_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_QueryServiceConfig2W_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_QueryServiceConfig2W_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -826,7 +826,7 @@ static int svcctl_dissect_element_QueryServiceStatusEx_handle_(tvbuff_t *tvb _U_
 static int svcctl_dissect_element_QueryServiceStatusEx_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_QueryServiceStatusEx_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_QueryServiceStatusEx_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int svcctl_dissect_element_QueryServiceStatusEx_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceStatusEx_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_QueryServiceStatusEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_QueryServiceStatusEx_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_QueryServiceStatusEx_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -854,7 +854,7 @@ static int svcctl_dissect_element_EnumServicesStatusExW_type(tvbuff_t *tvb _U_,
 static int svcctl_dissect_element_EnumServicesStatusExW_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_EnumServicesStatusExW_services(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_EnumServicesStatusExW_services_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int svcctl_dissect_element_EnumServicesStatusExW_services__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExW_services__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_EnumServicesStatusExW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_EnumServicesStatusExW_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int svcctl_dissect_element_EnumServicesStatusExW_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -2469,15 +2469,15 @@ svcctl_dissect_element_QueryServiceObjectSecurity_buffer(tvbuff_t *tvb _U_, int
 static int
 svcctl_dissect_element_QueryServiceObjectSecurity_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceObjectSecurity_buffer__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceObjectSecurity_buffer__);
 
        return offset;
 }
 
 static int
-svcctl_dissect_element_QueryServiceObjectSecurity_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+svcctl_dissect_element_QueryServiceObjectSecurity_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceObjectSecurity_buffer, 0);
+       proto_tree_add_bytes(tree, hf_svcctl_svcctl_QueryServiceObjectSecurity_buffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -2582,15 +2582,15 @@ svcctl_dissect_element_SetServiceObjectSecurity_buffer(tvbuff_t *tvb _U_, int of
 static int
 svcctl_dissect_element_SetServiceObjectSecurity_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_SetServiceObjectSecurity_buffer__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_SetServiceObjectSecurity_buffer__);
 
        return offset;
 }
 
 static int
-svcctl_dissect_element_SetServiceObjectSecurity_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+svcctl_dissect_element_SetServiceObjectSecurity_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_SetServiceObjectSecurity_buffer, 0);
+       proto_tree_add_bytes(tree, hf_svcctl_svcctl_SetServiceObjectSecurity_buffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3237,15 +3237,15 @@ svcctl_dissect_element_CreateServiceW_dependencies(tvbuff_t *tvb _U_, int offset
 static int
 svcctl_dissect_element_CreateServiceW_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceW_dependencies__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceW_dependencies__);
 
        return offset;
 }
 
 static int
-svcctl_dissect_element_CreateServiceW_dependencies__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+svcctl_dissect_element_CreateServiceW_dependencies__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceW_dependencies, 0);
+       proto_tree_add_bytes(tree, hf_svcctl_svcctl_CreateServiceW_dependencies, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3288,15 +3288,15 @@ svcctl_dissect_element_CreateServiceW_password(tvbuff_t *tvb _U_, int offset _U_
 static int
 svcctl_dissect_element_CreateServiceW_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceW_password__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceW_password__);
 
        return offset;
 }
 
 static int
-svcctl_dissect_element_CreateServiceW_password__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+svcctl_dissect_element_CreateServiceW_password__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceW_password, 0);
+       proto_tree_add_bytes(tree, hf_svcctl_svcctl_CreateServiceW_password, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3436,15 +3436,15 @@ svcctl_dissect_element_EnumDependentServicesW_service_status(tvbuff_t *tvb _U_,
 static int
 svcctl_dissect_element_EnumDependentServicesW_service_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumDependentServicesW_service_status__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumDependentServicesW_service_status__);
 
        return offset;
 }
 
 static int
-svcctl_dissect_element_EnumDependentServicesW_service_status__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+svcctl_dissect_element_EnumDependentServicesW_service_status__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumDependentServicesW_service_status, 0);
+       proto_tree_add_bytes(tree, hf_svcctl_svcctl_EnumDependentServicesW_service_status, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3577,15 +3577,15 @@ svcctl_dissect_element_EnumServicesStatusW_service(tvbuff_t *tvb _U_, int offset
 static int
 svcctl_dissect_element_EnumServicesStatusW_service_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusW_service__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusW_service__);
 
        return offset;
 }
 
 static int
-svcctl_dissect_element_EnumServicesStatusW_service__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+svcctl_dissect_element_EnumServicesStatusW_service__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumServicesStatusW_service, 0);
+       proto_tree_add_bytes(tree, hf_svcctl_svcctl_EnumServicesStatusW_service, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -5125,15 +5125,15 @@ svcctl_dissect_element_EnumServicesStatusA_offered(tvbuff_t *tvb _U_, int offset
 static int
 svcctl_dissect_element_EnumServicesStatusA_service(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusA_service_);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusA_service_);
 
        return offset;
 }
 
 static int
-svcctl_dissect_element_EnumServicesStatusA_service_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+svcctl_dissect_element_EnumServicesStatusA_service_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumServicesStatusA_service, 0);
+       proto_tree_add_bytes(tree, hf_svcctl_svcctl_EnumServicesStatusA_service, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -6249,15 +6249,15 @@ svcctl_dissect_element_QueryServiceConfig2W_buffer(tvbuff_t *tvb _U_, int offset
 static int
 svcctl_dissect_element_QueryServiceConfig2W_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceConfig2W_buffer__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceConfig2W_buffer__);
 
        return offset;
 }
 
 static int
-svcctl_dissect_element_QueryServiceConfig2W_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+svcctl_dissect_element_QueryServiceConfig2W_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceConfig2W_buffer, 0);
+       proto_tree_add_bytes(tree, hf_svcctl_svcctl_QueryServiceConfig2W_buffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -6362,15 +6362,15 @@ svcctl_dissect_element_QueryServiceStatusEx_buffer(tvbuff_t *tvb _U_, int offset
 static int
 svcctl_dissect_element_QueryServiceStatusEx_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceStatusEx_buffer__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceStatusEx_buffer__);
 
        return offset;
 }
 
 static int
-svcctl_dissect_element_QueryServiceStatusEx_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+svcctl_dissect_element_QueryServiceStatusEx_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceStatusEx_buffer, 0);
+       proto_tree_add_bytes(tree, hf_svcctl_svcctl_QueryServiceStatusEx_buffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -6690,15 +6690,15 @@ svcctl_dissect_element_EnumServicesStatusExW_services(tvbuff_t *tvb _U_, int off
 static int
 svcctl_dissect_element_EnumServicesStatusExW_services_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusExW_services__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusExW_services__);
 
        return offset;
 }
 
 static int
-svcctl_dissect_element_EnumServicesStatusExW_services__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+svcctl_dissect_element_EnumServicesStatusExW_services__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_EnumServicesStatusExW_services, 0);
+       proto_tree_add_bytes(tree, hf_svcctl_EnumServicesStatusExW_services, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -7008,7 +7008,7 @@ void proto_register_dcerpc_svcctl(void)
        { &hf_svcctl_svcctl_ChangeServiceConfigW_service_start_name,
          { "Service Start Name", "svcctl.svcctl_ChangeServiceConfigW.service_start_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_EnumServicesStatusA_service,
-         { "Service", "svcctl.svcctl_EnumServicesStatusA.service", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Service", "svcctl.svcctl_EnumServicesStatusA.service", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_CreateServiceA_error_control,
          { "Error Control", "svcctl.svcctl_CreateServiceA.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
        { &hf_svcctl_SERVICE_FAILURE_ACTIONS_rebootmsg,
@@ -7034,7 +7034,7 @@ void proto_register_dcerpc_svcctl(void)
        { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_INTERROGATE,
          { "Sc Right Svc Interrogate", "svcctl.svcctl_ServiceAccessMask.SC_RIGHT_SVC_INTERROGATE", FT_BOOLEAN, 32, TFS(&svcctl_ServiceAccessMask_SC_RIGHT_SVC_INTERROGATE_tfs), ( 0x0080 ), NULL, HFILL }},
        { &hf_svcctl_svcctl_CreateServiceW_password,
-         { "Password", "svcctl.svcctl_CreateServiceW.password", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Password", "svcctl.svcctl_CreateServiceW.password", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_werror,
          { "Windows Error", "svcctl.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_QueryServiceObjectSecurity_needed,
@@ -7192,7 +7192,7 @@ void proto_register_dcerpc_svcctl(void)
        { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_CONFIG,
          { "Sc Right Svc Query Config", "svcctl.svcctl_ServiceAccessMask.SC_RIGHT_SVC_QUERY_CONFIG", FT_BOOLEAN, 32, TFS(&svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_CONFIG_tfs), ( 0x0001 ), NULL, HFILL }},
        { &hf_svcctl_svcctl_SetServiceObjectSecurity_buffer,
-         { "Buffer", "svcctl.svcctl_SetServiceObjectSecurity.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Buffer", "svcctl.svcctl_SetServiceObjectSecurity.buffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_QUERY_SERVICE_CONFIG_start_type,
          { "Start Type", "svcctl.QUERY_SERVICE_CONFIG.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_SHUTDOWN,
@@ -7218,7 +7218,7 @@ void proto_register_dcerpc_svcctl(void)
        { &hf_svcctl_EnumServicesStatusExW_state,
          { "State", "svcctl.EnumServicesStatusExW.state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_EnumDependentServicesW_service_status,
-         { "Service Status", "svcctl.svcctl_EnumDependentServicesW.service_status", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Service Status", "svcctl.svcctl_EnumDependentServicesW.service_status", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_CreateServiceW_ServiceName,
          { "Servicename", "svcctl.svcctl_CreateServiceW.ServiceName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_EnumServicesStatusW_state,
@@ -7238,7 +7238,7 @@ void proto_register_dcerpc_svcctl(void)
        { &hf_svcctl_svcctl_CreateServiceW_LoadOrderGroupKey,
          { "Loadordergroupkey", "svcctl.svcctl_CreateServiceW.LoadOrderGroupKey", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_EnumServicesStatusW_service,
-         { "Service", "svcctl.svcctl_EnumServicesStatusW.service", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Service", "svcctl.svcctl_EnumServicesStatusW.service", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_CreateServiceW_service_start_name,
          { "Service Start Name", "svcctl.svcctl_CreateServiceW.service_start_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_EnumServicesStatusA_resume_handle,
@@ -7280,7 +7280,7 @@ void proto_register_dcerpc_svcctl(void)
        { &hf_svcctl_svcctl_ChangeServiceConfigA_binary_path,
          { "Binary Path", "svcctl.svcctl_ChangeServiceConfigA.binary_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_QueryServiceStatusEx_buffer,
-         { "Buffer", "svcctl.svcctl_QueryServiceStatusEx.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Buffer", "svcctl.svcctl_QueryServiceStatusEx.buffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_QueryServiceConfigW_offered,
          { "Offered", "svcctl.svcctl_QueryServiceConfigW.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_ChangeServiceConfigW_dependencies,
@@ -7318,7 +7318,7 @@ void proto_register_dcerpc_svcctl(void)
        { &hf_svcctl_svcctl_OpenServiceA_scmanager_handle,
          { "Scmanager Handle", "svcctl.svcctl_OpenServiceA.scmanager_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_CreateServiceW_dependencies,
-         { "Dependencies", "svcctl.svcctl_CreateServiceW.dependencies", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Dependencies", "svcctl.svcctl_CreateServiceW.dependencies", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_EnumServicesStatusExA_needed,
          { "Needed", "svcctl.EnumServicesStatusExA.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_EnumServicesStatusExA_resume_handle,
@@ -7328,7 +7328,7 @@ void proto_register_dcerpc_svcctl(void)
        { &hf_svcctl_svcctl_OpenSCManagerW_DatabaseName,
          { "Databasename", "svcctl.svcctl_OpenSCManagerW.DatabaseName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_QueryServiceConfig2W_buffer,
-         { "Buffer", "svcctl.svcctl_QueryServiceConfig2W.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Buffer", "svcctl.svcctl_QueryServiceConfig2W.buffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_CreateServiceW_dependencies_size,
          { "Dependencies Size", "svcctl.svcctl_CreateServiceW.dependencies_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_GetServiceDisplayNameW_handle,
@@ -7368,7 +7368,7 @@ void proto_register_dcerpc_svcctl(void)
        { &hf_svcctl_EnumServicesStatusExW_scmanager,
          { "Scmanager", "svcctl.EnumServicesStatusExW.scmanager", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_EnumServicesStatusExW_services,
-         { "Services", "svcctl.EnumServicesStatusExW.services", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Services", "svcctl.EnumServicesStatusExW.services", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_QueryServiceLockStatusW_lock_status,
          { "Lock Status", "svcctl.svcctl_QueryServiceLockStatusW.lock_status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_GetServiceKeyNameA_display_name_length,
@@ -7380,7 +7380,7 @@ void proto_register_dcerpc_svcctl(void)
        { &hf_svcctl_EnumServicesStatusExA_services,
          { "Services", "svcctl.EnumServicesStatusExA.services", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_QueryServiceObjectSecurity_buffer,
-         { "Buffer", "svcctl.svcctl_QueryServiceObjectSecurity.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Buffer", "svcctl.svcctl_QueryServiceObjectSecurity.buffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_QueryServiceConfigA_offered,
          { "Offered", "svcctl.svcctl_QueryServiceConfigA.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_svcctl_svcctl_SCSetServiceBitsW_bits,
index a3a53c9dd5ee86edfbcb05b7a18829a19147955b..5d9734a5c871be39c09ef77d5e47050c9547cd61 100644 (file)
@@ -249,7 +249,7 @@ static int winreg_dissect_element_String_name(tvbuff_t *tvb _U_, int offset _U_,
 static int winreg_dissect_element_String_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_KeySecurityData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_KeySecurityData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_KeySecurityData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_KeySecurityData_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_KeySecurityData_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_KeySecurityData_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_SecBuf_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -390,7 +390,7 @@ static int winreg_dissect_element_EnumValue_type(tvbuff_t *tvb _U_, int offset _
 static int winreg_dissect_element_EnumValue_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_EnumValue_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_EnumValue_value_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_EnumValue_value__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumValue_value__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_EnumValue_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_EnumValue_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_EnumValue_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -451,7 +451,7 @@ static int winreg_dissect_element_QueryValue_type(tvbuff_t *tvb _U_, int offset
 static int winreg_dissect_element_QueryValue_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_QueryValue_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_QueryValue_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_QueryValue_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryValue_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_QueryValue_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_QueryValue_data_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_QueryValue_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -486,7 +486,7 @@ static int winreg_dissect_element_SetValue_name(tvbuff_t *tvb _U_, int offset _U
 static int winreg_dissect_element_SetValue_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_SetValue_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_SetValue_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_SetValue_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SetValue_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_SetValue_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_UnLoadKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_UnLoadKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -526,7 +526,7 @@ static int winreg_dissect_element_QueryMultipleValues_values_out__(tvbuff_t *tvb
 static int winreg_dissect_element_QueryMultipleValues_num_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_QueryMultipleValues_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_QueryMultipleValues_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_QueryMultipleValues_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_QueryMultipleValues_buffer_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_QueryMultipleValues_buffer_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_InitiateSystemShutdownEx_hostname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -565,7 +565,7 @@ static int winreg_dissect_element_QueryMultipleValues2_values_out__(tvbuff_t *tv
 static int winreg_dissect_element_QueryMultipleValues2_num_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_QueryMultipleValues2_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_QueryMultipleValues2_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_QueryMultipleValues2_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_QueryMultipleValues2_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_QueryMultipleValues2_offered_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int winreg_dissect_element_QueryMultipleValues2_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -805,15 +805,15 @@ winreg_dissect_element_KeySecurityData_data(tvbuff_t *tvb _U_, int offset _U_, p
 static int
 winreg_dissect_element_KeySecurityData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_KeySecurityData_data__);
+       offset = dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, drep, winreg_dissect_element_KeySecurityData_data__);
 
        return offset;
 }
 
 static int
-winreg_dissect_element_KeySecurityData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_KeySecurityData_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_KeySecurityData_data, 0);
+       proto_tree_add_bytes(tree, hf_winreg_KeySecurityData_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -2325,15 +2325,15 @@ winreg_dissect_element_EnumValue_value(tvbuff_t *tvb _U_, int offset _U_, packet
 static int
 winreg_dissect_element_EnumValue_value_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_EnumValue_value__);
+       offset = dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, drep, winreg_dissect_element_EnumValue_value__);
 
        return offset;
 }
 
 static int
-winreg_dissect_element_EnumValue_value__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_EnumValue_value__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_EnumValue_value, 0);
+       proto_tree_add_bytes(tree, hf_winreg_winreg_EnumValue_value, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3119,15 +3119,15 @@ winreg_dissect_element_QueryValue_data(tvbuff_t *tvb _U_, int offset _U_, packet
 static int
 winreg_dissect_element_QueryValue_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryValue_data__);
+       offset = dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryValue_data__);
 
        return offset;
 }
 
 static int
-winreg_dissect_element_QueryValue_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_QueryValue_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryValue_data, 0);
+       proto_tree_add_bytes(tree, hf_winreg_winreg_QueryValue_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -3588,15 +3588,15 @@ winreg_dissect_element_SetValue_data(tvbuff_t *tvb _U_, int offset _U_, packet_i
 static int
 winreg_dissect_element_SetValue_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_SetValue_data__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, winreg_dissect_element_SetValue_data__);
 
        return offset;
 }
 
 static int
-winreg_dissect_element_SetValue_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_SetValue_data__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_SetValue_data, 0);
+       proto_tree_add_bytes(tree, hf_winreg_winreg_SetValue_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -4142,15 +4142,15 @@ winreg_dissect_element_QueryMultipleValues_buffer(tvbuff_t *tvb _U_, int offset
 static int
 winreg_dissect_element_QueryMultipleValues_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues_buffer__);
+       offset = dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues_buffer__);
 
        return offset;
 }
 
 static int
-winreg_dissect_element_QueryMultipleValues_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_QueryMultipleValues_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryMultipleValues_buffer, 0);
+       proto_tree_add_bytes(tree, hf_winreg_winreg_QueryMultipleValues_buffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -4649,15 +4649,15 @@ winreg_dissect_element_QueryMultipleValues2_buffer(tvbuff_t *tvb _U_, int offset
 static int
 winreg_dissect_element_QueryMultipleValues2_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues2_buffer__);
+       offset = dissect_ndr_ucvarray_block(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues2_buffer__);
 
        return offset;
 }
 
 static int
-winreg_dissect_element_QueryMultipleValues2_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_QueryMultipleValues2_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryMultipleValues2_buffer, 0);
+       proto_tree_add_bytes(tree, hf_winreg_winreg_QueryMultipleValues2_buffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -5051,7 +5051,7 @@ void proto_register_dcerpc_winreg(void)
        { &hf_winreg_winreg_RestoreKey_handle,
          { "Handle", "winreg.winreg_RestoreKey.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_winreg_winreg_SetValue_data,
-         { "Data", "winreg.winreg_SetValue.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "winreg.winreg_SetValue.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_winreg_winreg_InitiateSystemShutdown_force_apps,
          { "Force Apps", "winreg.winreg_InitiateSystemShutdown.force_apps", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_winreg_winreg_NotifyChangeKeyValue_string1,
@@ -5059,7 +5059,7 @@ void proto_register_dcerpc_winreg(void)
        { &hf_winreg_winreg_SaveKeyEx_flags,
          { "Flags", "winreg.winreg_SaveKeyEx.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_winreg_winreg_QueryMultipleValues_buffer,
-         { "Buffer", "winreg.winreg_QueryMultipleValues.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Buffer", "winreg.winreg_QueryMultipleValues.buffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_winreg_winreg_OpenHKDD_access_mask,
          { "Access Mask", "winreg.winreg_OpenHKDD.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
        { &hf_winreg_winreg_QueryInfoKey_classname,
@@ -5109,9 +5109,9 @@ void proto_register_dcerpc_winreg(void)
        { &hf_winreg_winreg_SaveKey_filename,
          { "Filename", "winreg.winreg_SaveKey.filename", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_winreg_winreg_QueryValue_data,
-         { "Data", "winreg.winreg_QueryValue.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "winreg.winreg_QueryValue.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_winreg_winreg_QueryMultipleValues2_buffer,
-         { "Buffer", "winreg.winreg_QueryMultipleValues2.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Buffer", "winreg.winreg_QueryMultipleValues2.buffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_winreg_winreg_InitiateSystemShutdown_hostname,
          { "Hostname", "winreg.winreg_InitiateSystemShutdown.hostname", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_winreg_winreg_UnLoadKey_handle,
@@ -5119,7 +5119,7 @@ void proto_register_dcerpc_winreg(void)
        { &hf_winreg_winreg_QueryMultipleValues_values_out,
          { "Values Out", "winreg.winreg_QueryMultipleValues.values_out", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_winreg_KeySecurityData_data,
-         { "Data", "winreg.KeySecurityData.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "winreg.KeySecurityData.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_winreg_winreg_OpenKey_access_mask,
          { "Access Mask", "winreg.winreg_OpenKey.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
        { &hf_winreg_winreg_OpenKey_keyname,
@@ -5207,7 +5207,7 @@ void proto_register_dcerpc_winreg(void)
        { &hf_winreg_winreg_CreateKey_keyclass,
          { "Keyclass", "winreg.winreg_CreateKey.keyclass", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_winreg_winreg_EnumValue_value,
-         { "Value", "winreg.winreg_EnumValue.value", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Value", "winreg.winreg_EnumValue.value", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_winreg_winreg_OpenHKCU_access_mask,
          { "Access Mask", "winreg.winreg_OpenHKCU.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
        { &hf_winreg_winreg_GetKeySecurity_sd,
index 578875e5007508e8818085658c98f31ed50dcd08..a36644b1c9847fad98025f96c21b592a3dba3ca3 100644 (file)
@@ -817,7 +817,7 @@ const value_string wkssvc_wkssvc_NetJoinStatus_vals[] = {
 { 0, NULL }
 };
 static int wkssvc_dissect_element_PasswordBuffer_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int wkssvc_dissect_element_PasswordBuffer_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_PasswordBuffer_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static const true_false_string wkssvc_joinflags_WKSSVC_JOIN_FLAGS_IGNORE_UNSUPPORTED_FLAGS_tfs = {
    "WKSSVC_JOIN_FLAGS_IGNORE_UNSUPPORTED_FLAGS is SET",
    "WKSSVC_JOIN_FLAGS_IGNORE_UNSUPPORTED_FLAGS is NOT SET",
@@ -963,7 +963,7 @@ static int wkssvc_dissect_element_NetrMessageBufferSend_message_sender_name(tvbu
 static int wkssvc_dissect_element_NetrMessageBufferSend_message_sender_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int wkssvc_dissect_element_NetrMessageBufferSend_message_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int wkssvc_dissect_element_NetrMessageBufferSend_message_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int wkssvc_dissect_element_NetrMessageBufferSend_message_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrMessageBufferSend_message_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int wkssvc_dissect_element_NetrMessageBufferSend_message_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int wkssvc_dissect_element_NetrWorkstationStatisticsGet_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int wkssvc_dissect_element_NetrWorkstationStatisticsGet_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -6478,17 +6478,19 @@ wkssvc_dissect_enum_NetJoinStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info
 static int
 wkssvc_dissect_element_PasswordBuffer_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 524; i++)
-               offset = wkssvc_dissect_element_PasswordBuffer_data_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = wkssvc_dissect_element_PasswordBuffer_data_(tvb, offset, 524, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-wkssvc_dissect_element_PasswordBuffer_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+wkssvc_dissect_element_PasswordBuffer_data_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_PasswordBuffer_data, 0);
+       proto_tree_add_bytes(tree, hf_wkssvc_wkssvc_PasswordBuffer_data, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -7973,15 +7975,15 @@ wkssvc_dissect_element_NetrMessageBufferSend_message_buffer(tvbuff_t *tvb _U_, i
 static int
 wkssvc_dissect_element_NetrMessageBufferSend_message_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrMessageBufferSend_message_buffer__);
+       offset = dissect_ndr_ucarray_block(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrMessageBufferSend_message_buffer__);
 
        return offset;
 }
 
 static int
-wkssvc_dissect_element_NetrMessageBufferSend_message_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+wkssvc_dissect_element_NetrMessageBufferSend_message_buffer__(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrMessageBufferSend_message_buffer, 0);
+       proto_tree_add_bytes(tree, hf_wkssvc_wkssvc_NetrMessageBufferSend_message_buffer, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -10436,7 +10438,7 @@ void proto_register_dcerpc_wkssvc(void)
        { &hf_wkssvc_wkssvc_NetrWkstaUserInfo1_logon_server,
          { "Logon Server", "wkssvc.wkssvc_NetrWkstaUserInfo1.logon_server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_wkssvc_wkssvc_PasswordBuffer_data,
-         { "Data", "wkssvc.wkssvc_PasswordBuffer.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Data", "wkssvc.wkssvc_PasswordBuffer.data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_wkssvc_wkssvc_NetrUseInfo3_unknown1,
          { "Unknown1", "wkssvc.wkssvc_NetrUseInfo3.unknown1", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_wkssvc_wkssvc_NetWkstaInfo502_cache_file_timeout,
@@ -10776,7 +10778,7 @@ void proto_register_dcerpc_wkssvc(void)
        { &hf_wkssvc_wkssvc_NetrValidateName_name_type,
          { "Name Type", "wkssvc.wkssvc_NetrValidateName.name_type", FT_UINT1632, BASE_DEC, VALS(wkssvc_wkssvc_NetValidateNameType_vals), 0, NULL, HFILL }},
        { &hf_wkssvc_wkssvc_NetrMessageBufferSend_message_buffer,
-         { "Message Buffer", "wkssvc.wkssvc_NetrMessageBufferSend.message_buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Message Buffer", "wkssvc.wkssvc_NetrMessageBufferSend.message_buffer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_wkssvc_wkssvc_NetWkstaTransportCtr0_count,
          { "Count", "wkssvc.wkssvc_NetWkstaTransportCtr0.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_wkssvc_wkssvc_NetrUseEnumInfo_level,
index 1271477f92efe554f1d7b22c93a978818385afb0..2499d857ce6c7e3bb3d3013bfa5ed7ba253e2297 100644 (file)
@@ -212,21 +212,21 @@ static int xattr_dissect_element_DosStreams_streams__(tvbuff_t *tvb _U_, int off
 static int xattr_dissect_element_security_descriptor_hash_v2_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int xattr_dissect_element_security_descriptor_hash_v2_sd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int xattr_dissect_element_security_descriptor_hash_v2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int xattr_dissect_element_security_descriptor_hash_v2_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v2_hash_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int xattr_dissect_element_security_descriptor_hash_v3_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int xattr_dissect_element_security_descriptor_hash_v3_sd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int xattr_dissect_element_security_descriptor_hash_v3_hash_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int xattr_dissect_element_security_descriptor_hash_v3_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int xattr_dissect_element_security_descriptor_hash_v3_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v3_hash_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int xattr_dissect_element_security_descriptor_hash_v4_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int xattr_dissect_element_security_descriptor_hash_v4_sd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int xattr_dissect_element_security_descriptor_hash_v4_hash_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int xattr_dissect_element_security_descriptor_hash_v4_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int xattr_dissect_element_security_descriptor_hash_v4_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v4_hash_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int xattr_dissect_element_security_descriptor_hash_v4_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int xattr_dissect_element_security_descriptor_hash_v4_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int xattr_dissect_element_security_descriptor_hash_v4_sys_acl_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int xattr_dissect_element_security_descriptor_hash_v4_sys_acl_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v4_sys_acl_hash_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int xattr_dissect_element_NTACL_Info_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int xattr_dissect_element_NTACL_Info_sd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
 static int xattr_dissect_element_NTACL_Info_sd_hs2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1265,17 +1265,19 @@ xattr_dissect_element_security_descriptor_hash_v2_sd_(tvbuff_t *tvb _U_, int off
 static int
 xattr_dissect_element_security_descriptor_hash_v2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 16; i++)
-               offset = xattr_dissect_element_security_descriptor_hash_v2_hash_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = xattr_dissect_element_security_descriptor_hash_v2_hash_(tvb, offset, 16, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-xattr_dissect_element_security_descriptor_hash_v2_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+xattr_dissect_element_security_descriptor_hash_v2_hash_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_xattr_security_descriptor_hash_v2_hash, 0);
+       proto_tree_add_bytes(tree, hf_xattr_security_descriptor_hash_v2_hash, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1346,17 +1348,19 @@ xattr_dissect_element_security_descriptor_hash_v3_hash_type(tvbuff_t *tvb _U_, i
 static int
 xattr_dissect_element_security_descriptor_hash_v3_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 64; i++)
-               offset = xattr_dissect_element_security_descriptor_hash_v3_hash_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = xattr_dissect_element_security_descriptor_hash_v3_hash_(tvb, offset, 64, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-xattr_dissect_element_security_descriptor_hash_v3_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+xattr_dissect_element_security_descriptor_hash_v3_hash_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_xattr_security_descriptor_hash_v3_hash, 0);
+       proto_tree_add_bytes(tree, hf_xattr_security_descriptor_hash_v3_hash, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1432,17 +1436,19 @@ xattr_dissect_element_security_descriptor_hash_v4_hash_type(tvbuff_t *tvb _U_, i
 static int
 xattr_dissect_element_security_descriptor_hash_v4_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 64; i++)
-               offset = xattr_dissect_element_security_descriptor_hash_v4_hash_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = xattr_dissect_element_security_descriptor_hash_v4_hash_(tvb, offset, 64, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-xattr_dissect_element_security_descriptor_hash_v4_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+xattr_dissect_element_security_descriptor_hash_v4_hash_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_xattr_security_descriptor_hash_v4_hash, 0);
+       proto_tree_add_bytes(tree, hf_xattr_security_descriptor_hash_v4_hash, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1466,17 +1472,19 @@ xattr_dissect_element_security_descriptor_hash_v4_time(tvbuff_t *tvb _U_, int of
 static int
 xattr_dissect_element_security_descriptor_hash_v4_sys_acl_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       int i;
-       for (i = 0; i < 64; i++)
-               offset = xattr_dissect_element_security_descriptor_hash_v4_sys_acl_hash_(tvb, offset, pinfo, tree, drep);
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       int conformant = di->conformant_run;
+       if (!conformant) {
+               offset = xattr_dissect_element_security_descriptor_hash_v4_sys_acl_hash_(tvb, offset, 64, pinfo, tree, drep);
+       }
 
        return offset;
 }
 
 static int
-xattr_dissect_element_security_descriptor_hash_v4_sys_acl_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+xattr_dissect_element_security_descriptor_hash_v4_sys_acl_hash_(tvbuff_t *tvb _U_, int offset _U_,int length _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
 {
-       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_xattr_security_descriptor_hash_v4_sys_acl_hash, 0);
+       proto_tree_add_bytes(tree, hf_xattr_security_descriptor_hash_v4_sys_acl_hash, tvb, offset, length, tvb_get_ptr(tvb, offset,length)); offset += length;
 
        return offset;
 }
@@ -1804,7 +1812,7 @@ void proto_register_dcerpc_xattr(void)
        { &hf_xattr_security_descriptor_hash_v4_sd,
          { "Sd", "xattr.security_descriptor_hash_v4.sd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_xattr_security_descriptor_hash_v3_hash,
-         { "Hash", "xattr.security_descriptor_hash_v3.hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Hash", "xattr.security_descriptor_hash_v3.hash", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_xattr_xattr_DOSATTRIB_info,
          { "Info", "xattr.xattr_DOSATTRIB.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_xattr_xattr_NTACL_Info_sd,
@@ -1824,7 +1832,7 @@ void proto_register_dcerpc_xattr(void)
        { &hf_xattr_xattr_DosInfo2Old_ea_size,
          { "Ea Size", "xattr.xattr_DosInfo2Old.ea_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_xattr_security_descriptor_hash_v4_hash,
-         { "Hash", "xattr.security_descriptor_hash_v4.hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Hash", "xattr.security_descriptor_hash_v4.hash", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_xattr_xattr_DosInfo2Old_size,
          { "Size", "xattr.xattr_DosInfo2Old.size", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_xattr_xattr_DosInfo2Old_name,
@@ -1860,7 +1868,7 @@ void proto_register_dcerpc_xattr(void)
        { &hf_xattr_xattr_DosEAs_num_eas,
          { "Num Eas", "xattr.xattr_DosEAs.num_eas", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_xattr_security_descriptor_hash_v4_sys_acl_hash,
-         { "Sys Acl Hash", "xattr.security_descriptor_hash_v4.sys_acl_hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Sys Acl Hash", "xattr.security_descriptor_hash_v4.sys_acl_hash", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_xattr_opnum,
          { "Operation", "xattr.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_xattr_xattr_DosInfo2Old_attrib,
@@ -1938,7 +1946,7 @@ void proto_register_dcerpc_xattr(void)
        { &hf_xattr_xattr_DosInfo3_size,
          { "Size", "xattr.xattr_DosInfo3.size", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_xattr_security_descriptor_hash_v2_hash,
-         { "Hash", "xattr.security_descriptor_hash_v2.hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+         { "Hash", "xattr.security_descriptor_hash_v2.hash", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
        { &hf_xattr_xattr_NTACL_version,
          { "Version", "xattr.xattr_NTACL.version", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
        { &hf_xattr_xattr_DosInfo3_ea_size,