Wireshark-bugs: [Wireshark-bugs] [Bug 10805] New: Websocket dissector does not find subdissector
Date: Thu, 25 Dec 2014 10:44:13 +0000
Bug ID 10805
Summary Websocket dissector does not find subdissector correctly from port_subdissector_table using dissector_get_uint_handle()
Product Wireshark
Version 1.12.2
Hardware All
OS All
Status UNCONFIRMED
Severity Normal
Priority Low
Component Dissection engine (libwireshark)
Assignee bugzilla-admin@wireshark.org
Reporter isliuyang@hotmail.com

Build Information:
Version 1.12.2 (v1.12.2-0-g898fa22 from master-1.12)

Copyright 1998-2014 Gerald Combs <gerald@wireshark.org> and contributors.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiled (32-bit) with GTK+ 2.24.23, with Cairo 1.10.2, with Pango 1.34.0, with
GLib 2.38.0, with WinPcap (4_1_3), with libz 1.2.5, with SMI 0.4.8, with c-ares
1.9.1, with Lua 5.2, without Python, with GnuTLS 3.2.15, with Gcrypt 1.6.2,
with
MIT Kerberos, with GeoIP, with PortAudio V19-devel (built Nov 12 2014), with
AirPcap.

Running on 64-bit Windows 7 Service Pack 1, build 7601, with WinPcap version
4.1.3 (packet.dll version 4.1.0.2980), based on libpcap version 1.0 branch
1_0_rel0b (20091008), GnuTLS 3.2.15, Gcrypt 1.6.2, without AirPcap.
        Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz, with 8146MB of physical
memory.


Built using Microsoft Visual C++ 10.0 build 40219

Wireshark is Open Source Software released under the GNU General Public
License.

Check the man page and http://www.wireshark.org for more information.
--
File packet-websocket.c

Websocket dissector registered dissector table port_subdissector_table


port_subdissector_table = register_dissector_table("ws.port",
      "TCP port for protocols using WebSocket", FT_UINT16, BASE_DEC);


but no "ws.port" defined in websocket protocol.
When finding subdissector using:



handle = dissector_get_uint_handle(port_subdissector_table, pinfo->match_uint);



pinfo->match_uint value is not correct.
it should use pinfo->srcport or pinfo->destport to find correct handle. like:


handle = dissector_get_uint_handle(port_subdissector_table, pinfo->srcport);
if (handle == NULL) {
   handle = dissector_get_uint_handle(port_subdissector_table,
pinfo->destport);
}


You are receiving this mail because:
  • You are watching all bug changes.