diff options
author | Michael Mann <mmann78@netscape.net> | 2015-11-04 08:45:11 -0500 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2015-11-04 15:51:07 +0000 |
commit | 02dcf3cc72c1156a72bc6f86f07702382ff0d22e (patch) | |
tree | bd188678bdfd923cb23955bbd1fab0c5165cde72 /plugins/profinet | |
parent | bd44ceebd56741ca531d8e934ef9e70b40e6d91a (diff) |
Don't allow DCE/RPC dissector table to have duplicates
Add "placeholders" in Profinet dissector to make that possible.
Change-Id: I000069ec72b5810c5675a30df1c121aa179000b3
Reviewed-on: https://code.wireshark.org/review/11557
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'plugins/profinet')
-rw-r--r-- | plugins/profinet/packet-dcerpc-pn-io.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/plugins/profinet/packet-dcerpc-pn-io.c b/plugins/profinet/packet-dcerpc-pn-io.c index c7a47c88d6..72fbf08ec0 100644 --- a/plugins/profinet/packet-dcerpc-pn-io.c +++ b/plugins/profinet/packet-dcerpc-pn-io.c @@ -59,6 +59,9 @@ void proto_register_pn_io(void); void proto_reg_handoff_pn_io(void); static int proto_pn_io = -1; +static int proto_pn_io_controller = -1; +static int proto_pn_io_supervisor = -1; +static int proto_pn_io_parameterserver = -1; static int hf_pn_io_opnum = -1; static int hf_pn_io_reserved16 = -1; @@ -12249,6 +12252,12 @@ proto_register_pn_io (void) expert_module_t* expert_pn_io; proto_pn_io = proto_register_protocol ("PROFINET IO", "PNIO", "pn_io"); + + /* Created to remove Decode As confusion */ + proto_pn_io_controller = proto_register_protocol ("PROFINET IO (Controller)", "PNIO (Controller)", "pn_io_controller"); + proto_pn_io_supervisor = proto_register_protocol ("PROFINET IO (Supervisor)", "PNIO (Supervisor)", "pn_io_supervisor"); + proto_pn_io_parameterserver = proto_register_protocol ("PROFINET IO (Parameter Server)", "PNIO (Parameter Server)", "pn_io_parameterserver"); + proto_register_field_array (proto_pn_io, hf, array_length (hf)); proto_register_subtree_array (ett, array_length (ett)); expert_pn_io = expert_register_protocol(proto_pn_io); @@ -12269,9 +12278,9 @@ proto_reg_handoff_pn_io (void) { /* Register the protocols as dcerpc */ dcerpc_init_uuid (proto_pn_io, ett_pn_io, &uuid_pn_io_device, ver_pn_io_device, pn_io_dissectors, hf_pn_io_opnum); - dcerpc_init_uuid (proto_pn_io, ett_pn_io, &uuid_pn_io_controller, ver_pn_io_controller, pn_io_dissectors, hf_pn_io_opnum); - dcerpc_init_uuid (proto_pn_io, ett_pn_io, &uuid_pn_io_supervisor, ver_pn_io_supervisor, pn_io_dissectors, hf_pn_io_opnum); - dcerpc_init_uuid (proto_pn_io, ett_pn_io, &uuid_pn_io_parameterserver, ver_pn_io_parameterserver, pn_io_dissectors, hf_pn_io_opnum); + dcerpc_init_uuid (proto_pn_io_controller, ett_pn_io, &uuid_pn_io_controller, ver_pn_io_controller, pn_io_dissectors, hf_pn_io_opnum); + dcerpc_init_uuid (proto_pn_io_supervisor, ett_pn_io, &uuid_pn_io_supervisor, ver_pn_io_supervisor, pn_io_dissectors, hf_pn_io_opnum); + dcerpc_init_uuid (proto_pn_io_parameterserver, ett_pn_io, &uuid_pn_io_parameterserver, ver_pn_io_parameterserver, pn_io_dissectors, hf_pn_io_opnum); heur_dissector_add("pn_rt", dissect_PNIO_heur, "PROFINET IO", "pn_io_pn_rt", proto_pn_io, HEURISTIC_ENABLE); } |