aboutsummaryrefslogtreecommitdiffstats
path: root/packet-dcerpc-netlogon.c
diff options
context:
space:
mode:
Diffstat (limited to 'packet-dcerpc-netlogon.c')
-rw-r--r--packet-dcerpc-netlogon.c176
1 files changed, 96 insertions, 80 deletions
diff --git a/packet-dcerpc-netlogon.c b/packet-dcerpc-netlogon.c
index 14a4e00dd6..be02001d99 100644
--- a/packet-dcerpc-netlogon.c
+++ b/packet-dcerpc-netlogon.c
@@ -3,7 +3,7 @@
* Copyright 2001, Tim Potter <tpot@samba.org>
* 2002 structure and command dissectors by Ronnie Sahlberg
*
- * $Id: packet-dcerpc-netlogon.c,v 1.11 2002/03/17 07:43:11 sahlberg Exp $
+ * $Id: packet-dcerpc-netlogon.c,v 1.12 2002/03/24 12:25:39 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -186,6 +186,7 @@ static gint ett_USER_SESSION_KEY = -1;
static gint ett_BLOB = -1;
static gint ett_rid_array = -1;
static gint ett_attrib_array = -1;
+static gint ett_nt_unicode_string = -1;
static e_uuid_t uuid_dcerpc_netlogon = {
0x12345678, 0x1234, 0xabcd,
@@ -335,6 +336,38 @@ netlogon_dissect_pointer_STRING(tvbuff_t *tvb, int offset,
return offset;
}
+int
+netlogon_dissect_UNICODE_STRING(tvbuff_t *tvb, int offset,
+ packet_info *pinfo, proto_tree *parent_tree,
+ char *drep, int type, int hf_index, int levels)
+{
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ int old_offset=offset;
+ dcerpc_info *di;
+ char *name;
+
+ di=pinfo->private_data;
+ if(di->conformant_run){
+ /*just a run to handle conformant arrays, nothing to dissect */
+ return offset;
+ }
+
+ name = proto_registrar_get_name(hf_index);
+ if(parent_tree){
+ item = proto_tree_add_text(parent_tree, tvb, offset, -1,
+ "%s", name);
+ tree = proto_item_add_subtree(item, ett_nt_unicode_string);
+ }
+
+ offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
+ dissect_ndr_nt_UNICODE_STRING_str, type,
+ name, hf_index, levels);
+
+ proto_item_set_len(item, offset-old_offset);
+ return offset;
+}
+
static int
netlogon_dissect_NETLOGON_SECURITY_DESCRIPTOR(tvbuff_t *tvb, int offset,
@@ -3274,7 +3307,7 @@ netlogon_dissect_LOGONSRV_HANDLE(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "Handle:", hf_netlogon_logonsrv_handle, -1);
+ "Handle", hf_netlogon_logonsrv_handle, 0);
return offset;
}
@@ -3476,7 +3509,7 @@ netlogon_dissect_netlogonsamlogon_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "Computer Name:", hf_netlogon_computer_name, -1);
+ "Computer Name", hf_netlogon_computer_name, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_NETLOGON_AUTHENTICATOR, NDR_POINTER_UNIQUE,
@@ -3525,7 +3558,7 @@ netlogon_dissect_netlogonsamlogoff_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "unknown string", hf_netlogon_unknown_string, -1);
+ "unknown string", hf_netlogon_unknown_string, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_NETLOGON_AUTHENTICATOR, NDR_POINTER_UNIQUE,
@@ -3565,9 +3598,8 @@ netlogon_dissect_netserverreqchallenge_rqst(tvbuff_t *tvb, int offset,
offset = netlogon_dissect_LOGONSRV_HANDLE(tvb, offset,
pinfo, tree, drep);
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_REF,
- "logon_client", hf_netlogon_client_name, -1);
+ offset = netlogon_dissect_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
+ NDR_POINTER_REF, hf_netlogon_client_name, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_NETLOGON_CREDENTIAL, NDR_POINTER_REF,
@@ -3598,16 +3630,14 @@ netlogon_dissect_netserverauthenticate_rqst(tvbuff_t *tvb, int offset,
offset = netlogon_dissect_LOGONSRV_HANDLE(tvb, offset,
pinfo, tree, drep);
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_REF,
- "acct_name", hf_netlogon_acct_name, -1);
+ offset = netlogon_dissect_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
+ NDR_POINTER_REF, hf_netlogon_acct_name, 0);
offset = netlogon_dissect_NETLOGON_SECURE_CHANNEL_TYPE(tvb, offset,
pinfo, tree, drep);
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_REF,
- "computer_name", hf_netlogon_computer_name, -1);
+ offset = netlogon_dissect_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
+ NDR_POINTER_REF, hf_netlogon_computer_name, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_NETLOGON_CREDENTIAL, NDR_POINTER_REF,
@@ -3638,16 +3668,14 @@ netlogon_dissect_netserverpasswordset_rqst(tvbuff_t *tvb, int offset,
offset = netlogon_dissect_LOGONSRV_HANDLE(tvb, offset,
pinfo, tree, drep);
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_REF,
- "acct_name", hf_netlogon_acct_name, -1);
+ offset = netlogon_dissect_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
+ NDR_POINTER_REF, hf_netlogon_acct_name, 0);
offset = netlogon_dissect_NETLOGON_SECURE_CHANNEL_TYPE(tvb, offset,
pinfo, tree, drep);
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_REF,
- "computer_name", hf_netlogon_computer_name, -1);
+ offset = netlogon_dissect_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
+ NDR_POINTER_REF, hf_netlogon_computer_name, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_NETLOGON_AUTHENTICATOR, NDR_POINTER_REF,
@@ -3680,13 +3708,11 @@ netlogon_dissect_netsamdeltas_rqst(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, char *drep)
{
/* XXX idl file has LOGONSRV_HANDLE here, ms capture has string srv_name */
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_REF,
- "srv_name", hf_netlogon_logon_srv, -1);
+ offset = netlogon_dissect_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
+ NDR_POINTER_REF, hf_netlogon_logon_srv, 0);
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_REF,
- "cli_name", hf_netlogon_cli_name, -1);
+ offset = netlogon_dissect_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
+ NDR_POINTER_REF, hf_netlogon_cli_name, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_NETLOGON_AUTHENTICATOR, NDR_POINTER_REF,
@@ -3735,13 +3761,11 @@ static int
netlogon_dissect_function_08_rqst(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, char *drep)
{
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_REF,
- "srv_name", hf_netlogon_logon_srv, -1);
+ offset = netlogon_dissect_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
+ NDR_POINTER_REF, hf_netlogon_logon_srv, 0);
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_REF,
- "cli_name", hf_netlogon_cli_name, -1);
+ offset = netlogon_dissect_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
+ NDR_POINTER_REF, hf_netlogon_cli_name, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_NETLOGON_AUTHENTICATOR, NDR_POINTER_REF,
@@ -3793,9 +3817,8 @@ netlogon_dissect_function_09_rqst(tvbuff_t *tvb, int offset,
offset = netlogon_dissect_LOGONSRV_HANDLE(tvb, offset,
pinfo, tree, drep);
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_REF,
- "unknown string", hf_netlogon_unknown_string, -1);
+ offset = netlogon_dissect_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
+ NDR_POINTER_REF, hf_netlogon_unknown_string, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_NETLOGON_AUTHENTICATOR, NDR_POINTER_REF,
@@ -3858,9 +3881,8 @@ netlogon_dissect_function_0a_rqst(tvbuff_t *tvb, int offset,
offset = netlogon_dissect_LOGONSRV_HANDLE(tvb, offset,
pinfo, tree, drep);
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_REF,
- "unknown string", hf_netlogon_unknown_string, -1);
+ offset = netlogon_dissect_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
+ NDR_POINTER_REF, hf_netlogon_unknown_string, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_NETLOGON_AUTHENTICATOR, NDR_POINTER_REF,
@@ -3922,13 +3944,12 @@ netlogon_dissect_function_0b_rqst(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, char *drep)
{
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_REF,
- "unknown string", hf_netlogon_unknown_string, -1);
+ offset = netlogon_dissect_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
+ NDR_POINTER_REF, hf_netlogon_unknown_string, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "unknown string", hf_netlogon_unknown_string, -1);
+ "unknown string", hf_netlogon_unknown_string, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_WCHAR_ptr, NDR_POINTER_REF,
@@ -3991,7 +4012,7 @@ netlogon_dissect_function_0d_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "unknown string", hf_netlogon_unknown_string, -1);
+ "unknown string", hf_netlogon_unknown_string, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_WCHAR_ptr, NDR_POINTER_REF,
@@ -4056,16 +4077,14 @@ netlogon_dissect_netserverauthenticate2_rqst(tvbuff_t *tvb, int offset,
offset = netlogon_dissect_LOGONSRV_HANDLE(tvb, offset,
pinfo, tree, drep);
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_REF,
- "acct_name", hf_netlogon_acct_name, -1);
+ offset = netlogon_dissect_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
+ NDR_POINTER_REF, hf_netlogon_acct_name, 0);
offset = netlogon_dissect_NETLOGON_SECURE_CHANNEL_TYPE(tvb, offset,
pinfo, tree, drep);
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_REF,
- "computer_name", hf_netlogon_computer_name, -1);
+ offset = netlogon_dissect_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
+ NDR_POINTER_REF, hf_netlogon_computer_name, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_NETLOGON_CREDENTIAL, NDR_POINTER_REF,
@@ -4103,9 +4122,8 @@ netlogon_dissect_netdatabasesync2_rqst(tvbuff_t *tvb, int offset,
offset = netlogon_dissect_LOGONSRV_HANDLE(tvb, offset,
pinfo, tree, drep);
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_REF,
- "unknown string", hf_netlogon_unknown_string, -1);
+ offset = netlogon_dissect_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
+ NDR_POINTER_REF, hf_netlogon_unknown_string, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_NETLOGON_AUTHENTICATOR, NDR_POINTER_REF,
@@ -4158,13 +4176,11 @@ static int
netlogon_dissect_function_11_rqst(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, char *drep)
{
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_REF,
- "unknown string", hf_netlogon_unknown_string, -1);
+ offset = netlogon_dissect_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
+ NDR_POINTER_REF, hf_netlogon_unknown_string, 0);
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_REF,
- "unknown string", hf_netlogon_unknown_string, -1);
+ offset = netlogon_dissect_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
+ NDR_POINTER_REF, hf_netlogon_unknown_string, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_NETLOGON_AUTHENTICATOR, NDR_POINTER_REF,
@@ -4272,7 +4288,7 @@ netlogon_dissect_dsrgetdcname2_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "domain", hf_netlogon_logon_dom, -1);
+ "Domain", hf_netlogon_logon_dom, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_GUID, NDR_POINTER_UNIQUE,
@@ -4312,7 +4328,7 @@ netlogon_dissect_function_15_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "unknown string", hf_netlogon_unknown_string, -1);
+ "unknown string", hf_netlogon_unknown_string, 0);
offset = netlogon_dissect_NETLOGON_AUTHENTICATOR(tvb, offset,
pinfo, tree, drep);
@@ -4382,7 +4398,7 @@ netlogon_dissect_function_17_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "unknown string", hf_netlogon_unknown_string, -1);
+ "unknown string", hf_netlogon_unknown_string, 0);
return offset;
}
@@ -4459,7 +4475,7 @@ netlogon_dissect_function_19_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "unknown string", hf_netlogon_unknown_string, -1);
+ "unknown string", hf_netlogon_unknown_string, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_BYTE_array, NDR_POINTER_PTR,
@@ -4495,14 +4511,14 @@ netlogon_dissect_netserverauthenticate3_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "acct_name", hf_netlogon_acct_name, -1);
+ "Acct Name", hf_netlogon_acct_name, 0);
offset = netlogon_dissect_NETLOGON_SECURE_CHANNEL_TYPE(tvb, offset,
pinfo, tree, drep);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "computer_name", hf_netlogon_computer_name, -1);
+ "Computer Name", hf_netlogon_computer_name, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_NETLOGON_CREDENTIAL, NDR_POINTER_REF,
@@ -4547,7 +4563,7 @@ netlogon_dissect_dsrgetdcname_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "domain", hf_netlogon_logon_dom, -1);
+ "Domain", hf_netlogon_logon_dom, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_GUID, NDR_POINTER_UNIQUE,
@@ -4555,7 +4571,7 @@ netlogon_dissect_dsrgetdcname_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "site", hf_netlogon_site_name, -1);
+ "Site Name", hf_netlogon_site_name, 0);
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
hf_netlogon_flags, NULL);
@@ -4594,9 +4610,8 @@ netlogon_dissect_dsrgetsitename_reply(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, char *drep)
{
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_REF,
- "site", hf_netlogon_site_name, -1);
+ offset = netlogon_dissect_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
+ NDR_POINTER_REF, hf_netlogon_site_name, 0);
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
hf_netlogon_rc, NULL);
@@ -4613,7 +4628,7 @@ netlogon_dissect_function_1d_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "computer_name", hf_netlogon_computer_name, -1);
+ "Computer Name", hf_netlogon_computer_name, 0);
offset = netlogon_dissect_NETLOGON_AUTHENTICATOR(tvb, offset,
pinfo, tree, drep);
@@ -4659,14 +4674,14 @@ netlogon_dissect_function_1e_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "unknown string", hf_netlogon_unknown_string, -1);
+ "unknown string", hf_netlogon_unknown_string, 0);
offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep,
hf_netlogon_unknown_short, NULL);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "unknown string", hf_netlogon_unknown_string, -1);
+ "unknown string", hf_netlogon_unknown_string, 0);
offset = netlogon_dissect_NETLOGON_AUTHENTICATOR(tvb, offset,
pinfo, tree, drep);
@@ -4701,14 +4716,14 @@ netlogon_dissect_netserverpasswordset2_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "acct_name", hf_netlogon_acct_name, -1);
+ "Acct Name", hf_netlogon_acct_name, 0);
offset = netlogon_dissect_NETLOGON_SECURE_CHANNEL_TYPE(tvb, offset,
pinfo, tree, drep);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "computer_name", hf_netlogon_computer_name, -1);
+ "Computer Name", hf_netlogon_computer_name, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_NETLOGON_AUTHENTICATOR, NDR_POINTER_REF,
@@ -4816,14 +4831,14 @@ netlogon_dissect_function_22_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "unknown string", hf_netlogon_unknown_string, -1);
+ "unknown string", hf_netlogon_unknown_string, 0);
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
hf_netlogon_unknown_long, NULL);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "unknown string", hf_netlogon_unknown_string, -1);
+ "unknown string", hf_netlogon_unknown_string, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_GUID, NDR_POINTER_UNIQUE,
@@ -4831,7 +4846,7 @@ netlogon_dissect_function_22_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "unknown string", hf_netlogon_unknown_string, -1);
+ "unknown string", hf_netlogon_unknown_string, 0);
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
hf_netlogon_unknown_long, NULL);
@@ -4947,7 +4962,7 @@ netlogon_dissect_function_26_rqst(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "unknown string", hf_netlogon_unknown_string, -1);
+ "unknown string", hf_netlogon_unknown_string, 0);
return offset;
}
@@ -4973,11 +4988,11 @@ netlogon_dissect_function_27_rqst(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "unknown string", hf_netlogon_unknown_string, -1);
+ "unknown string", hf_netlogon_unknown_string, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "unknown string", hf_netlogon_unknown_string, -1);
+ "unknown string", hf_netlogon_unknown_string, 0);
offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep,
hf_netlogon_unknown_short, NULL);
@@ -5055,7 +5070,7 @@ netlogon_dissect_dsrderegisterdnshostrecords_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "domain", hf_netlogon_logon_dom, -1);
+ "Domain", hf_netlogon_logon_dom, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_GUID, NDR_POINTER_UNIQUE,
@@ -5633,6 +5648,7 @@ static hf_register_info hf[] = {
&ett_BLOB,
&ett_rid_array,
&ett_attrib_array,
+ &ett_nt_unicode_string,
};
proto_dcerpc_netlogon = proto_register_protocol(