diff options
author | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2014-10-12 17:24:35 +0200 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2014-10-12 17:46:26 +0000 |
commit | d62b323c5e29cf42c505b57a44e569f13de4fec7 (patch) | |
tree | 51499f3c4ca4fc679723268bdeff88fb7ef541a8 | |
parent | 148136c9a5a5502bf1726ef2227097781838a800 (diff) |
PIDL (DCERPC misc): enhance dissector
* Fix -Wunused-function (Set NOEMIT winreg_Data and remove unused function)
* Remove dissector DCERPC misc from DIRTY list
Change-Id: If59b14f8db33354a2d5248e8bc256cadee3ea4bf
Reviewed-on: https://code.wireshark.org/review/4345
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Michael Mann <mmann78@netscape.net>
-rw-r--r-- | epan/CMakeLists.txt | 3 | ||||
-rw-r--r-- | epan/dissectors/Makefile.common | 4 | ||||
-rw-r--r-- | epan/dissectors/packet-dcerpc-misc.c | 140 | ||||
-rw-r--r-- | epan/dissectors/pidl/misc.cnf | 29 |
4 files changed, 17 insertions, 159 deletions
diff --git a/epan/CMakeLists.txt b/epan/CMakeLists.txt index c9065c1ede..a39b6a910c 100644 --- a/epan/CMakeLists.txt +++ b/epan/CMakeLists.txt @@ -177,6 +177,7 @@ set(PIDL_DISSECTOR_SRC dissectors/packet-dcerpc-lsa.c dissectors/packet-dcerpc-nspi.c dissectors/packet-dcerpc-mdssvc.c + dissectors/packet-dcerpc-misc.c dissectors/packet-dcerpc-rfr.c dissectors/packet-dcerpc-srvsvc.c dissectors/packet-dcerpc-winreg.c @@ -185,7 +186,7 @@ set(PIDL_DISSECTOR_SRC ) set(DIRTY_PIDL_DISSECTOR_SRC dissectors/packet-dcerpc-mapi.c - dissectors/packet-dcerpc-misc.c + ) set(ASN1_DISSECTOR_SRC diff --git a/epan/dissectors/Makefile.common b/epan/dissectors/Makefile.common index 846978f9b9..04187fef65 100644 --- a/epan/dissectors/Makefile.common +++ b/epan/dissectors/Makefile.common @@ -57,6 +57,7 @@ PIDL_DISSECTOR_SRC = \ packet-dcerpc-initshutdown.c \ packet-dcerpc-lsa.c \ packet-dcerpc-mdssvc.c \ + packet-dcerpc-misc.c \ packet-dcerpc-nspi.c \ packet-dcerpc-rfr.c \ packet-dcerpc-srvsvc.c \ @@ -70,8 +71,7 @@ PIDL_DISSECTOR_SRC = \ # DIRTY_PIDL_DISSECTOR_SRC = \ packet-dcerpc-drsuapi.c \ - packet-dcerpc-mapi.c \ - packet-dcerpc-misc.c + packet-dcerpc-mapi.c # # Headers for PIDL-generated dissectors. diff --git a/epan/dissectors/packet-dcerpc-misc.c b/epan/dissectors/packet-dcerpc-misc.c index dbfc1b37b3..3b93c0f97a 100644 --- a/epan/dissectors/packet-dcerpc-misc.c +++ b/epan/dissectors/packet-dcerpc-misc.c @@ -27,27 +27,21 @@ static gint ett_misc_GUID = -1; static gint ett_misc_ndr_syntax_id = -1; static gint ett_misc_policy_handle = -1; static gint ett_misc_KRB5_EDATA_NTSTATUS = -1; -static gint ett_misc_winreg_Data = -1; /* Header field declarations */ +static gint hf_misc_KRB5_EDATA_NTSTATUS_unknown1 = -1; static gint hf_misc_GUID_time_mid = -1; -static gint hf_misc_winreg_Data_value = -1; +static gint hf_misc_policy_handle_handle_type = -1; +static gint hf_misc_ndr_syntax_id_uuid = -1; static gint hf_misc_GUID_time_low = -1; static gint hf_misc_KRB5_EDATA_NTSTATUS_unknown2 = -1; static gint hf_misc_GUID_time_hi_and_version = -1; static gint hf_misc_KRB5_EDATA_NTSTATUS_ntstatus = -1; static gint hf_misc_GUID_node = -1; -static gint hf_misc_winreg_Data_string = -1; -static gint hf_misc_winreg_Data_data = -1; -static gint hf_misc_winreg_Data_binary = -1; -static gint hf_misc_policy_handle_uuid = -1; -static gint hf_misc_KRB5_EDATA_NTSTATUS_unknown1 = -1; -static gint hf_misc_policy_handle_handle_type = -1; -static gint hf_misc_ndr_syntax_id_uuid = -1; static gint hf_misc_opnum = -1; static gint hf_misc_GUID_clock_seq = -1; -static gint hf_misc_winreg_Data_string_array = -1; +static gint hf_misc_policy_handle_uuid = -1; static gint hf_misc_ndr_syntax_id_if_version = -1; static gint proto_dcerpc_misc = -1; @@ -100,31 +94,6 @@ const value_string misc_winreg_Type_vals[] = { { REG_QWORD, "REG_QWORD" }, { 0, NULL } }; -static int misc_dissect_element_winreg_Data_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int misc_dissect_element_winreg_Data_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int misc_dissect_element_winreg_Data_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int misc_dissect_element_winreg_Data_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int misc_dissect_element_winreg_Data_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int misc_dissect_element_winreg_Data_string_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int misc_dissect_element_winreg_Data_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_); -static int -misc_dissect_element_winreg_Data_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) -{ - offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_misc_winreg_Data_string , 0); - return offset; -} -static int -misc_dissect_element_winreg_Data_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di, guint8 *drep _U_) -{ - offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_misc_winreg_Data_value, 0); - return offset; -} -static int -misc_dissect_struct_string_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info *di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) -{ - /* We don't do it yet */ - return offset; -} /* IDL: struct { */ @@ -470,80 +439,6 @@ misc_dissect_enum_winreg_Type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi /* IDL: [default] ; */ /* IDL: } */ -static int -misc_dissect_element_winreg_Data_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) -{ - offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_misc_winreg_Data_binary, 1); - - return offset; -} - -static int -misc_dissect_element_winreg_Data_string_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) -{ - offset = misc_dissect_struct_string_array(tvb,offset,pinfo,tree,di,drep,hf_misc_winreg_Data_string_array,0); - - return offset; -} - -static int -misc_dissect_element_winreg_Data_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) -{ - offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_misc_winreg_Data_data, 1); - - return offset; -} - -static int -misc_dissect_winreg_Data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) -{ - proto_item *item = NULL; - proto_tree *tree = NULL; - int old_offset; - guint32 level = param; - - old_offset = offset; - if (parent_tree) { - tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_misc_winreg_Data, &item, "winreg_Data"); - } - - switch(level) { - case REG_NONE: - break; - - case REG_SZ: - offset = misc_dissect_element_winreg_Data_string(tvb, offset, pinfo, tree, di, drep); - break; - - case REG_EXPAND_SZ: - offset = misc_dissect_element_winreg_Data_string(tvb, offset, pinfo, tree, di, drep); - break; - - case REG_BINARY: - offset = misc_dissect_element_winreg_Data_binary(tvb, offset, pinfo, tree, di, drep); - break; - - case REG_DWORD: - offset = misc_dissect_element_winreg_Data_value(tvb, offset, pinfo, tree, di, drep); - break; - - case REG_DWORD_BIG_ENDIAN: - offset = misc_dissect_element_winreg_Data_value(tvb, offset, pinfo, tree, di, drep); - break; - - case REG_MULTI_SZ: - offset = misc_dissect_element_winreg_Data_string_array(tvb, offset, pinfo, tree, di, drep); - break; - - default: - offset = misc_dissect_element_winreg_Data_data(tvb, offset, pinfo, tree, di, drep); - break; - } - proto_item_set_len(item, offset-old_offset); - - - return offset; -} static dcerpc_sub_dissector misc_dissectors[] = { { 0, NULL, NULL, NULL } @@ -552,10 +447,14 @@ static dcerpc_sub_dissector misc_dissectors[] = { void proto_register_dcerpc_misc(void) { static hf_register_info hf[] = { + { &hf_misc_KRB5_EDATA_NTSTATUS_unknown1, + { "Unknown1", "misc.KRB5_EDATA_NTSTATUS.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_misc_GUID_time_mid, { "Time Mid", "misc.GUID.time_mid", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_misc_winreg_Data_value, - { "Value", "misc.winreg_Data.value", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_misc_policy_handle_handle_type, + { "Handle Type", "misc.policy_handle.handle_type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_misc_ndr_syntax_id_uuid, + { "Uuid", "misc.ndr_syntax_id.uuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_misc_GUID_time_low, { "Time Low", "misc.GUID.time_low", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_misc_KRB5_EDATA_NTSTATUS_unknown2, @@ -566,26 +465,12 @@ void proto_register_dcerpc_misc(void) { "Ntstatus", "misc.KRB5_EDATA_NTSTATUS.ntstatus", FT_UINT32, BASE_DEC, VALS(NT_errors), 0, NULL, HFILL }}, { &hf_misc_GUID_node, { "Node", "misc.GUID.node", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_misc_winreg_Data_string, - { "String", "misc.winreg_Data.string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_misc_winreg_Data_data, - { "Data", "misc.winreg_Data.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_misc_winreg_Data_binary, - { "Binary", "misc.winreg_Data.binary", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_misc_policy_handle_uuid, - { "Uuid", "misc.policy_handle.uuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_misc_KRB5_EDATA_NTSTATUS_unknown1, - { "Unknown1", "misc.KRB5_EDATA_NTSTATUS.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_misc_policy_handle_handle_type, - { "Handle Type", "misc.policy_handle.handle_type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_misc_ndr_syntax_id_uuid, - { "Uuid", "misc.ndr_syntax_id.uuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_misc_opnum, { "Operation", "misc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_misc_GUID_clock_seq, { "Clock Seq", "misc.GUID.clock_seq", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_misc_winreg_Data_string_array, - { "String Array", "misc.winreg_Data.string_array", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_misc_policy_handle_uuid, + { "Uuid", "misc.policy_handle.uuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_misc_ndr_syntax_id_if_version, { "If Version", "misc.ndr_syntax_id.if_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, }; @@ -597,7 +482,6 @@ void proto_register_dcerpc_misc(void) &ett_misc_ndr_syntax_id, &ett_misc_policy_handle, &ett_misc_KRB5_EDATA_NTSTATUS, - &ett_misc_winreg_Data, }; proto_dcerpc_misc = proto_register_protocol("MISC (pidl)", "MISC", "misc"); diff --git a/epan/dissectors/pidl/misc.cnf b/epan/dissectors/pidl/misc.cnf index 8589e8f9c1..f210c38583 100644 --- a/epan/dissectors/pidl/misc.cnf +++ b/epan/dissectors/pidl/misc.cnf @@ -1,28 +1 @@ -MANUAL misc_dissect_element_winreg_Data_value -MANUAL misc_dissect_element_winreg_Data_string - -CODE START - -static int -misc_dissect_element_winreg_Data_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_) -{ - offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_misc_winreg_Data_string , 0); - - return offset; -} - -static int -misc_dissect_element_winreg_Data_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di, guint8 *drep _U_) -{ - offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_misc_winreg_Data_value, 0); - - return offset; -} - -static int -misc_dissect_struct_string_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info *di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) -{ - /* We don't do it yet */ - return offset; -} -CODE END +NOEMIT winreg_Data |