Wireshark-bugs: [Wireshark-bugs] [Bug 10976] New: jmirror packet dissector expects ipv6 flow lab
Date: Wed, 18 Feb 2015 23:12:25 +0000
Bug ID 10976
Summary jmirror packet dissector expects ipv6 flow label = 0
Product Wireshark
Version 1.10.6
Hardware x86
OS Windows 7
Status UNCONFIRMED
Severity Major
Priority Low
Component Dissection engine (libwireshark)
Assignee bugzilla-admin@wireshark.org
Reporter shehan.perera@gmail.com

Build Information:
Version 1.10.6 (v1.10.6 from master-1.10)

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.14, with Cairo 1.10.2, with Pango 1.30.1, with
GLib 2.34.1, with WinPcap (4_1_3), with libz 1.2.5, without POSIX capabilities,
without libnl, with SMI 0.4.8, with c-ares 1.9.1, with Lua 5.1, without Python,
with GnuTLS 2.12.18, with Gcrypt 1.4.6, with MIT Kerberos, with GeoIP, with
PortAudio V19-devel (built Mar  7 2014), with AirPcap.

Running on 32-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 2.12.18, Gcrypt 1.4.6, without AirPcap.
       Intel(R) Core(TM) i5-3340M CPU @ 2.70GHz, with 3232MB 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.
--
Hi 

The current code for the jmirror dissector checks for the next header based on
the following:

* IPv4 Header: 0100 0101 xxxx xx00                     ==> Pattern for standard
IPv4 20-byte header    
* IPv6 Header: 0110 xxxx xxxx 0000 0000 0000 0000 0000 ==> Pattern for standard
IPv6 header with no flow label
* PPP/HDLC:    1111 1111 0000 0011 xx00 0000 0010 0001 ==> HDLC-like framing
for PPP (FF 03 x0 21)
 * PPP/HDLC:        1111 1111 0000 0011 0000 0000 0101 0111        ==>
HDLC-like framing for PPP IPv6 (FF 03 00 57) 

When the ipv6 flow label is non-zero the dissector does not detect the payload
as being ipv6.

Current code:
/* Look for IPv6 with no flow label */

else if ( hi_nibble(byte0) == 6 && lo_nibble(byte1) == 0 && byte2 == 0 && byte3
== 0 && ipv6_handle )
return ipv6_handle; 

Update:
remove check for value of byte3.

resulting code:
else if ( hi_nibble(byte0) == 6 && lo_nibble(byte1) == 0 && byte2 == 0 &&
ipv6_handle )
return ipv6_handle; 

I do not have the environment to compile this. Will it be possible to provide
an updated nightly build?

Many thanks


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