aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-jmirror.c
diff options
context:
space:
mode:
authorAlexis La Goutte <alexis.lagoutte@gmail.com>2015-02-19 22:32:31 +0100
committerAnders Broman <a.broman58@gmail.com>2015-02-23 11:44:20 +0000
commit306c819e49664e689722fdb5b596765903ffbc48 (patch)
tree102006215d729a297310fe1331e6058a37dcc96d /epan/dissectors/packet-jmirror.c
parent4c994e3bd314733bf3ca15fed76860dfdb37cab4 (diff)
jmirror packet dissector expects ipv6 flow label = 0
When the ipv6 flow label is non-zero the dissector does not detect the payload as being ipv6. Issue reported by Shehan Perera Bug:10976 Change-Id: I1de4966dfefd1afa9bb51b9a7570091aad59fbdd Reviewed-on: https://code.wireshark.org/review/7260 Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-jmirror.c')
-rw-r--r--epan/dissectors/packet-jmirror.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/epan/dissectors/packet-jmirror.c b/epan/dissectors/packet-jmirror.c
index e4a9532bd3..d86f486368 100644
--- a/epan/dissectors/packet-jmirror.c
+++ b/epan/dissectors/packet-jmirror.c
@@ -66,7 +66,7 @@ get_heuristic_handle(tvbuff_t *tvb)
* The bit pattern shown below is the basis. A bit of "x" is a variable field.
*
* 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
+ * IPv6 Header: 0110 xxxx xxxx xxxx xxxx xxxx xxxx xxxx ==> Pattern for standard IPv6 header with variable TC and Flow
* 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)
*/
@@ -84,8 +84,8 @@ get_heuristic_handle(tvbuff_t *tvb)
if ( byte0 == 0x45 && ipv4_handle )
return ipv4_handle;
- /* Look for IPv6 with no flow label */
- else if ( hi_nibble(byte0) == 6 && lo_nibble(byte1) == 0 && byte2 == 0 && byte3 == 0 && ipv6_handle )
+ /* Look for IPv6 */
+ else if ( hi_nibble(byte0) == 6 && ipv6_handle )
return ipv6_handle;
/* Look for PPP/HDLC for LCP and IPv4 */