[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1380209227.3165.176.camel@edumazet-glaptop>
Date: Thu, 26 Sep 2013 08:27:07 -0700
From: Eric Dumazet <eric.dumazet@...il.com>
To: Nikolay Aleksandrov <nikolay@...hat.com>,
Daniel Borkmann <dborkman@...hat.com>
Cc: netdev@...r.kernel.org, davem@...emloft.net, andy@...yhouse.net,
fubar@...ibm.com, vfalico@...hat.com
Subject: [PATCH]
On Thu, 2013-09-26 at 16:09 +0200, Nikolay Aleksandrov wrote:
> Factor out the code that extracts the ports from skb_flow_dissect and
> add a new function skb_flow_get_ports which can be re-used.
>
> Suggested-by: Veaceslav Falico <vfalico@...hat.com>
> Signed-off-by: Nikolay Aleksandrov <nikolay@...hat.com>
> ---
> v2: new patch
> v3: fix a bug in skb_flow_dissect where thoff didn't have poff added by
> modifying thoff directly in skb_flow_get_ports as it's done anyway.
> Also add the necessary export symbol for skb_flow_get_ports.
> This seems like a good idea because there're other users that can re-use
> it later as well.
Wait a minute.... existing code seems buggy.
Daniel, any objection if I submit this fix ?
(commit 8ed781668dd49b608f)
diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c
index 1929af8..8d7d0dd 100644
--- a/net/core/flow_dissector.c
+++ b/net/core/flow_dissector.c
@@ -154,8 +154,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;
}
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists