aboutsummaryrefslogtreecommitdiffstats
path: root/packet-dcerpc-netlogon.c
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2002-03-17 07:43:11 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2002-03-17 07:43:11 +0000
commit6836cadee8bea3b603e605676764bad568ef4f90 (patch)
treeaf70ba776617a329994427ee63e96a13a47315d8 /packet-dcerpc-netlogon.c
parent13e6565ff4c07fb2568ca9a9705d29eb59a3be46 (diff)
downloadwireshark-6836cadee8bea3b603e605676764bad568ef4f90.tar.gz
wireshark-6836cadee8bea3b603e605676764bad568ef4f90.tar.bz2
wireshark-6836cadee8bea3b603e605676764bad568ef4f90.zip
Some minor bugfixes for netlogon
svn path=/trunk/; revision=4960
Diffstat (limited to 'packet-dcerpc-netlogon.c')
-rw-r--r--packet-dcerpc-netlogon.c25
1 files changed, 19 insertions, 6 deletions
diff --git a/packet-dcerpc-netlogon.c b/packet-dcerpc-netlogon.c
index c5e700df83..14a4e00dd6 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.10 2002/03/14 10:04:02 sahlberg Exp $
+ * $Id: packet-dcerpc-netlogon.c,v 1.11 2002/03/17 07:43:11 sahlberg Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -984,8 +984,11 @@ netlogon_dissect_NETLOGON_VALIDATION_SAM_INFO2(tvbuff_t *tvb, int offset,
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
hf_netlogon_num_rids, NULL);
+ /* XXX i am not sure about this pointer being UNIQUE, though I am
+ pretty convinced that it is NOT PTR as the idl file suggests.
+ */
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- netlogon_dissect_GROUP_MEMBERSHIP_ARRAY, NDR_POINTER_PTR,
+ netlogon_dissect_GROUP_MEMBERSHIP_ARRAY, NDR_POINTER_UNIQUE,
"GROUP_MEMBERSHIP_ARRAY", -1, 0);
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -2802,6 +2805,7 @@ netlogon_dissect_NETLOGON_LEVEL(tvbuff_t *tvb, int offset,
offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep,
hf_netlogon_level, &level);
+ ALIGN_TO_4_BYTES;
switch(level){
case 1:
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
@@ -2858,25 +2862,29 @@ netlogon_dissect_NETLOGON_VALIDATION(tvbuff_t *tvb, int offset,
offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep,
hf_netlogon_level, &level);
+ /* XXX i am not sure about these pointers being UNIQUE, though I am
+ pretty convinced that they are NOT PTR as the idl file suggests.
+ */
+ ALIGN_TO_4_BYTES;
switch(level){
case 2:
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- netlogon_dissect_NETLOGON_VALIDATION_SAM_INFO1, NDR_POINTER_PTR,
+ netlogon_dissect_NETLOGON_VALIDATION_SAM_INFO1, NDR_POINTER_UNIQUE,
"NETLOGON_VALIDATION_SAM_INFO1 pointer:", -1, 0);
break;
case 3:
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- netlogon_dissect_NETLOGON_VALIDATION_SAM_INFO2, NDR_POINTER_PTR,
+ netlogon_dissect_NETLOGON_VALIDATION_SAM_INFO2, NDR_POINTER_UNIQUE,
"NETLOGON_VALIDATION_SAM_INFO2 pointer:", -1, 0);
break;
case 4:
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- netlogon_dissect_pointer_STRING, NDR_POINTER_PTR,
+ netlogon_dissect_pointer_STRING, NDR_POINTER_UNIQUE,
"STRING pointer:", -1, 0);
break;
case 5:
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
- netlogon_dissect_BLOB_ptr, NDR_POINTER_PTR,
+ netlogon_dissect_BLOB_ptr, NDR_POINTER_UNIQUE,
"BLOB pointer:", -1, 0);
break;
}
@@ -3019,6 +3027,7 @@ netlogon_dissect_NETLOGON_CONTROL_QUERY_INFO(tvbuff_t *tvb, int offset,
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
hf_netlogon_level_long, &level);
+ ALIGN_TO_4_BYTES;
switch(level){
case 5:
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
@@ -3065,6 +3074,7 @@ netlogon_dissect_TYPE_44(tvbuff_t *tvb, int offset,
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
hf_netlogon_level_long, &level);
+ ALIGN_TO_4_BYTES;
switch(level){
case 1:
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
@@ -3288,6 +3298,7 @@ netlogon_dissect_NETLOGON_INFO(tvbuff_t *tvb, int offset,
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
hf_netlogon_level_long, &level);
+ ALIGN_TO_4_BYTES;
switch(level){
case 1:
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
@@ -3334,6 +3345,7 @@ netlogon_dissect_TYPE_45(tvbuff_t *tvb, int offset,
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
hf_netlogon_level_long, &level);
+ ALIGN_TO_4_BYTES;
switch(level){
case 1:
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
@@ -3370,6 +3382,7 @@ netlogon_dissect_TYPE_47(tvbuff_t *tvb, int offset,
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
hf_netlogon_level_long, &level);
+ ALIGN_TO_4_BYTES;
switch(level){
case 1:
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,