diff options
author | guy <guy@f5534014-38df-0310-8fa8-9805f1628bb7> | 2010-12-30 02:56:51 +0000 |
---|---|---|
committer | guy <guy@f5534014-38df-0310-8fa8-9805f1628bb7> | 2010-12-30 02:56:51 +0000 |
commit | cadebaa83673f66e659397d3f169f2ffe2a87f90 (patch) | |
tree | 000692a9a085abcd98e1b21ce5540d718923dcec /epan/dissectors/packet-dcerpc-samr.c | |
parent | 0f56098d2ea2d6911f8424cde09ba367dd2588a7 (diff) |
The rids argument to samr_GetGroupsForUser() is *not* a single RID, it's
an array of samr_RidWithAttributeArray structures. Don't equate it to
hf_samr_rid; that causes hf_samr_rid to be added as an item with a
length of -1, but, as hf_samr_rid is an FT_UINT32 field, that causes a
dissector bug error.
The version of Yapp I was using, at least, didn't like C++-style
comments in the IDL file; replace them with C-style comments.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@35304 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-dcerpc-samr.c')
-rw-r--r-- | epan/dissectors/packet-dcerpc-samr.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/epan/dissectors/packet-dcerpc-samr.c b/epan/dissectors/packet-dcerpc-samr.c index 5c22f451fe..4f46497fe4 100644 --- a/epan/dissectors/packet-dcerpc-samr.c +++ b/epan/dissectors/packet-dcerpc-samr.c @@ -480,6 +480,7 @@ static gint hf_samr_samr_UserInfo5_home_drive = -1; static gint hf_samr_samr_RemoveMemberFromForeignDomain_sid = -1; static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE = -1; static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF = -1; +static gint hf_samr_samr_RidWithAttributeArray_rids = -1; static gint hf_samr_samr_Password_hash = -1; static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_OWF_PWD = -1; static gint hf_samr_samr_UserInfo_info25 = -1; @@ -7378,7 +7379,7 @@ samr_dissect_element_RidWithAttributeArray_count(tvbuff_t *tvb _U_, int offset _ static int samr_dissect_element_RidWithAttributeArray_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) { - offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidWithAttributeArray_rids_, NDR_POINTER_UNIQUE, "Pointer to Rids (samr_RidWithAttribute)",hf_samr_rid); + offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidWithAttributeArray_rids_, NDR_POINTER_UNIQUE, "Pointer to Rids (samr_RidWithAttribute)",hf_samr_samr_RidWithAttributeArray_rids); return offset; } @@ -7394,7 +7395,7 @@ samr_dissect_element_RidWithAttributeArray_rids_(tvbuff_t *tvb _U_, int offset _ static int samr_dissect_element_RidWithAttributeArray_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) { - offset = samr_dissect_struct_RidWithAttribute(tvb,offset,pinfo,tree,drep,hf_samr_rid,0); + offset = samr_dissect_struct_RidWithAttribute(tvb,offset,pinfo,tree,drep,hf_samr_samr_RidWithAttributeArray_rids,0); return offset; } @@ -16048,6 +16049,8 @@ void proto_register_dcerpc_samr(void) { "Samr Field Force Pwd Change", "samr.samr_FieldsPresent.SAMR_FIELD_FORCE_PWD_CHANGE", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE_tfs), ( 0x00020000 ), NULL, HFILL }}, { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF, { "Samr Field Last Logoff", "samr.samr_FieldsPresent.SAMR_FIELD_LAST_LOGOFF", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF_tfs), ( 0x00001000 ), NULL, HFILL }}, + { &hf_samr_samr_RidWithAttributeArray_rids, + { "Rids", "samr.samr_RidWithAttributeArray.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_samr_samr_Password_hash, { "Hash", "samr.samr_Password.hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_samr_samr_FieldsPresent_SAMR_FIELD_OWF_PWD, |