Wireshark-bugs: [Wireshark-bugs] [Bug 5267] New: MRP packet is not correctly parsed in PROFINET
Date: Fri, 1 Oct 2010 06:58:46 -0700 (PDT)
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5267

           Summary: MRP packet is not correctly parsed in PROFINET
                    multiple write record request
           Product: Wireshark
           Version: 1.4.0
          Platform: Other
        OS/Version: Windows XP
            Status: NEW
          Severity: Minor
          Priority: Low
         Component: TShark
        AssignedTo: wireshark-bugs@xxxxxxxxxxxxx
        ReportedBy: wait41year@xxxxxxxxxxx


Created an attachment (id=5245)
 --> (https://bugs.wireshark.org/bugzilla/attachment.cgi?id=5245)
svn diff wireshark/plugins/profinet/packet-dcerpc-pn-io.c

Build Information:
Version 1.4.0 (SVN Rev 34005 from /trunk-1.4)

Copyright 1998-2010 Gerald Combs <gerald@xxxxxxxxxxxxx> 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 with GTK+ 2.16.6, (32-bit) with GLib 2.22.4, with WinPcap (version
unknown), with libz 1.2.3, without POSIX capabilities, without libpcre, with
SMI
0.4.8, with c-ares 1.7.1, with Lua 5.1, without Python, with GnuTLS 2.8.5, with
Gcrypt 1.4.5, with MIT Kerberos, with GeoIP, with PortAudio V19-devel (built
Sep
 1 2010), with AirPcap.

Running on Windows XP Service Pack 3, build 2600, with WinPcap version 4.1.2
(packet.dll version 4.1.0.2001), based on libpcap version 1.0 branch 1_0_rel0b
(20091008), GnuTLS 2.8.5, Gcrypt 1.4.5, without AirPcap.

Built using Microsoft Visual C++ 9.0 build 30729

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

Check the man page and http://www.wireshark.org for more information.
--
In profinet plugin, when there is multiple write RDO request (index is 0xe040),
it dissect each write RDO request one by one. However, if one of the write RDO
request contains PDInterfaceMrpDataAdjust data, the dissector of
PDInterfaceMrpDataAdjust would dissect all blocks behind it, including
following write RDO request. This made the data dissected in a wrong way and
finally goes to malformed because write RDO raw data can't be dissected as
other blocks.
To fix it, the patch new a tvb that has length of current write RDO request.
This prevent dissector of PDInterfaceMrpDataAdjust (and other MRP dissector) to
dissect blocks in next write RDO request. By applying this fix, the malform
disappered.

-- 
Configure bugmail: https://bugs.wireshark.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.