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 |
[email protected]
|
Reporter |
[email protected]
|
Build Information:
Version 1.12.2 (v1.12.2-0-g898fa22 from master-1.12)
Copyright 1998-2014 Gerald Combs <[email protected]> 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.