diff options
author | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2002-07-05 08:59:31 +0000 |
---|---|---|
committer | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2002-07-05 08:59:31 +0000 |
commit | 78a1b4f460844a215b4118061d3af00e04c6f3e2 (patch) | |
tree | 91d362d55ef6d942911f33284e032f93f90f045a /packet-dcerpc-netlogon.c | |
parent | c6bb2fdfaea52aa8ab5d30d9362e8f138de4dda3 (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.c | 47 |
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 }}, |