aboutsummaryrefslogtreecommitdiffstats
path: root/packet-dcerpc-netlogon.c
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2002-07-05 08:59:31 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2002-07-05 08:59:31 +0000
commit78a1b4f460844a215b4118061d3af00e04c6f3e2 (patch)
tree91d362d55ef6d942911f33284e032f93f90f045a /packet-dcerpc-netlogon.c
parentc6bb2fdfaea52aa8ab5d30d9362e8f138de4dda3 (diff)
Fixed stupid bug I added when updating a structure preparing for the rewrite/update.
Fixed some other buglets as well at the same time. svn path=/trunk/; revision=5820
Diffstat (limited to 'packet-dcerpc-netlogon.c')
-rw-r--r--packet-dcerpc-netlogon.c47
1 files changed, 21 insertions, 26 deletions
diff --git a/packet-dcerpc-netlogon.c b/packet-dcerpc-netlogon.c
index 4f22358ad4..2e927edee0 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.29 2002/07/02 14:41:51 sahlberg Exp $
+ * $Id: packet-dcerpc-netlogon.c,v 1.30 2002/07/05 08:59:31 sahlberg Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -142,6 +142,7 @@ static int hf_netlogon_logon_attempts = -1;
static int hf_netlogon_authoritative = -1;
static int hf_netlogon_secure_channel_type = -1;
static int hf_netlogon_logonsrv_handle = -1;
+static int hf_netlogon_delta_type = -1;
static gint ett_dcerpc_netlogon = -1;
static gint ett_NETLOGON_SECURITY_DESCRIPTOR = -1;
@@ -1902,9 +1903,8 @@ netlogon_dissect_NETLOGON_SAM_ACCOUNT_INFO(tvbuff_t *tvb, int offset,
tree = proto_item_add_subtree(item, ett_NETLOGON_SAM_ACCOUNT_INFO);
}
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- dissect_ndr_nt_UNICODE_STRING_str, NDR_POINTER_UNIQUE,
- "User Name", hf_netlogon_acct_name, 0);
+ offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
+ hf_netlogon_acct_name, 0);
offset = dissect_ndr_nt_UNICODE_STRING(tvb, offset, pinfo, tree, drep,
hf_netlogon_full_name, 0);
@@ -3609,7 +3609,7 @@ netlogon_dissect_TYPE_20(tvbuff_t *tvb, int offset,
break;
case 5:
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- netlogon_dissect_NETLOGON_SAM_ACCOUNT_INFO, NDR_POINTER_PTR,
+ netlogon_dissect_NETLOGON_SAM_ACCOUNT_INFO, NDR_POINTER_UNIQUE,
"NETLOGON_SAM_ACCOUNT_INFO pointer:", -1, 0);
break;
case 7:
@@ -3693,6 +3693,9 @@ netlogon_dissect_SAM_DELTA(tvbuff_t *tvb, int offset,
tree = proto_item_add_subtree(item, ett_SAM_DELTA);
}
+ offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep,
+ hf_netlogon_delta_type, NULL);
+
offset = netlogon_dissect_TYPE_19(tvb, offset,
pinfo, tree, drep);
@@ -3734,25 +3737,13 @@ netlogon_dissect_SAM_DELTA_ARRAY(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
netlogon_dissect_SAM_DELTA_array, NDR_POINTER_UNIQUE,
- "unknown", -1, 0);
+ "DELTA_ENUM: deltas", -1, 0);
proto_item_set_len(item, offset-old_offset);
return offset;
}
static int
-netlogon_dissect_SAM_DELTA_ARRAY_ptr(tvbuff_t *tvb, int offset,
- packet_info *pinfo, proto_tree *tree,
- char *drep)
-{
- offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- netlogon_dissect_SAM_DELTA_ARRAY, NDR_POINTER_PTR,
- "SAM_DELTA_ARRAY pointer: deltas", -1, 0);
-
- return offset;
-}
-
-static int
netlogon_dissect_NETLOGON_INFO(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *parent_tree,
char *drep)
@@ -3919,8 +3910,8 @@ netlogon_dissect_netsamdeltas_reply(tvbuff_t *tvb, int offset,
"TYPE_16 pointer: dom_mod_count", -1, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- netlogon_dissect_SAM_DELTA_ARRAY_ptr, NDR_POINTER_REF,
- "SAM_DELTA_ARRAY_ptr pointer: deltas", -1, 0);
+ netlogon_dissect_SAM_DELTA_ARRAY, NDR_POINTER_UNIQUE,
+ "SAM_DELTA_ARRAY: deltas", -1, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_netlogon_rc, NULL);
@@ -3972,8 +3963,8 @@ netlogon_dissect_netlogondatabasesync_reply(tvbuff_t *tvb, int offset,
"ULONG pointer: unknown_ULONG", hf_netlogon_unknown_long, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- netlogon_dissect_SAM_DELTA_ARRAY_ptr, NDR_POINTER_REF,
- "SAM_DELTA_ARRAY* pointer: unknown_SAM_DELTA_ARRAY", -1, 0);
+ netlogon_dissect_SAM_DELTA_ARRAY, NDR_POINTER_UNIQUE,
+ "SAM_DELTA_ARRAY: deltas", -1, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_netlogon_rc, NULL);
@@ -4342,8 +4333,8 @@ netlogon_dissect_netdatabasesync2_reply(tvbuff_t *tvb, int offset,
"ULONG pointer: unknown_ULONG", hf_netlogon_unknown_long, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- netlogon_dissect_SAM_DELTA_ARRAY_ptr, NDR_POINTER_REF,
- "SAM_DELTA_ARRAY* pointer: unknown_SAM_DELTA_ARRAY", -1, 0);
+ netlogon_dissect_SAM_DELTA_ARRAY, NDR_POINTER_UNIQUE,
+ "SAM_DELTA_ARRAY: deltas", -1, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_netlogon_rc, NULL);
@@ -4389,8 +4380,8 @@ netlogon_dissect_netlogondatabaseredo_reply(tvbuff_t *tvb, int offset,
"AUTHENTICATOR: return_authenticator", -1, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- netlogon_dissect_SAM_DELTA_ARRAY_ptr, NDR_POINTER_REF,
- "SAM_DELTA_ARRAY* pointer: unknown_SAM_DELTA_ARRAY", -1, 0);
+ netlogon_dissect_SAM_DELTA_ARRAY, NDR_POINTER_UNIQUE,
+ "SAM_DELTA_ARRAY: deltas", -1, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_netlogon_rc, NULL);
@@ -5781,6 +5772,10 @@ static hf_register_info hf[] = {
{ "Sec Chn Type", "netlogon.sec_chn_type", FT_UINT16, BASE_DEC,
NULL, 0x0, "Secure Channel Type", HFILL }},
+ { &hf_netlogon_delta_type,
+ { "Delta Type", "netlogon.delta_type", FT_UINT16, BASE_DEC,
+ NULL, 0x0, "Delta Type", HFILL }},
+
{ &hf_netlogon_blob_size,
{ "Size", "netlogon.blob.size", FT_UINT32, BASE_DEC,
NULL, 0x0, "Size in bytes of BLOB", HFILL }},