[3.8.y.z extended stable] Patch "net: flow_dissector: fix thoff for IPPROTO_AH" has been added to staging queue

Kamal Mostafa kamal at canonical.com
Mon Oct 28 21:59:27 UTC 2013


This is a note to let you know that I have just added a patch titled

    net: flow_dissector: fix thoff for IPPROTO_AH

to the linux-3.8.y-queue branch of the 3.8.y.z extended stable tree 
which can be found at:

 http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.8.y-queue

This patch is scheduled to be released in version 3.8.13.12.

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.8.y.z tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable

Thanks.
-Kamal

------

>From d49bd5000ec957ced36973582960b789ae5909be Mon Sep 17 00:00:00 2001
From: Eric Dumazet <edumazet at google.com>
Date: Thu, 26 Sep 2013 08:44:06 -0700
Subject: net: flow_dissector: fix thoff for IPPROTO_AH

[ Upstream commit b86783587b3d1d552326d955acee37eac48800f1 ]

In commit 8ed781668dd49 ("flow_keys: include thoff into flow_keys for
later usage"), we missed that existing code was using nhoff as a
temporary variable that could not always contain transport header
offset.

This is not a problem for TCP/UDP because port offset (@poff)
is 0 for these protocols.

Signed-off-by: Eric Dumazet <edumazet at google.com>
Cc: Daniel Borkmann <dborkman at redhat.com>
Cc: Nikolay Aleksandrov <nikolay at redhat.com>
Acked-by: Nikolay Aleksandrov <nikolay at redhat.com>
Acked-by: Daniel Borkmann <dborkman at redhat.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
Signed-off-by: Kamal Mostafa <kamal at canonical.com>
---
 net/core/flow_dissector.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c
index 466820b..744b3ad 100644
--- a/net/core/flow_dissector.c
+++ b/net/core/flow_dissector.c
@@ -134,8 +134,8 @@ ipv6:
 	if (poff >= 0) {
 		__be32 *ports, _ports;

-		nhoff += poff;
-		ports = skb_header_pointer(skb, nhoff, sizeof(_ports), &_ports);
+		ports = skb_header_pointer(skb, nhoff + poff,
+					   sizeof(_ports), &_ports);
 		if (ports)
 			flow->ports = *ports;
 	}
--
1.8.1.2





More information about the kernel-team mailing list