Bug ID |
10329
|
Summary |
Probably wrong length check in proto_item_set_end
|
Classification |
Unclassified
|
Product |
Wireshark
|
Version |
1.99.x (Experimental)
|
Hardware |
x86
|
OS |
Windows 7
|
Status |
UNCONFIRMED
|
Severity |
Major
|
Priority |
Low
|
Component |
Dissection engine (libwireshark)
|
Assignee |
[email protected]
|
Reporter |
[email protected]
|
Created attachment 12945 [details]
Capture file containing a OPC UA message leading to the assertion
Build Information:
Version 1.99.0 (v1.99.0-rc1-1072-g54c55bb from unknown)
Copyright 1998-2014 Gerald Combs <[email protected]> and contributors.
License GPLv2+: GNU GPL version 2 or later
<http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>
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
WinPcap (4_1_3), with libz 1.2.5, with GLib 2.38.0, with SMI 0.4.8, with c-ares
1.9.1, with Lua 5.2, with GnuTLS 3.1.22, with Gcrypt 1.6.0, with MIT Kerberos,
with GeoIP, with PortAudio V19-devel (built Jul 31 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), with GnuTLS 3.1.22, with Gcrypt 1.6.0, without AirPcap.
Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz (with SSE4.2), with 8132MB of
physical memory.
Built using Microsoft Visual C++ 9.0 build 21022
Wireshark is Open Source Software released under the GNU General Public
License.
Check the man page and http://www.wireshark.org for more information.
--
Prerequisites to reproduce with attached capture file:
- Set Protocols -> OpcUa -> Ports: 48020
- Load attached capture file
When parsing OPC UA messages, for some items the opcua plugin calls
proto_item_set_end after parsing as the length of some items cannot be
determined when proto_tree_add_item is called.
The attached capture file contains a valid OPC UA Write Request which can
successfully be dissected, but at some point in the RequestHeader
proto_item_set_end throws an assertion (DISSECTOR_ASSERT(end >= fi->start);).
This assertion is only thrown if a chunked service is being dissected; we never
saw this behaviour for non-chunked services.
This leads to my assumption that the assertion inside proto_item_set_end is
wrong in case of fragmented messages that have been reassembled.
You are receiving this mail because:
- You are watching all bug changes.