Skip to content

Commit

Permalink
flow_dissector: Use same pointer for IPv4 and IPv6 addresses
Browse files Browse the repository at this point in the history
The IPv6 parsing was using a local pointer when it could use the same
pointer as the IPv4 portion of the code since the key_addrs can support
both IPv4 and IPv6 as it is just a pointer.

Signed-off-by: Alexander Duyck <aduyck@mirantis.com>
Acked-by: Tom Herbert <tom@herbertland.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Alexander Duyck authored and David S. Miller committed Feb 24, 2016
1 parent 224516b commit b3c3106
Showing 1 changed file with 5 additions and 6 deletions.
11 changes: 5 additions & 6 deletions net/core/flow_dissector.c
Original file line number Diff line number Diff line change
Expand Up @@ -220,13 +220,12 @@ bool __skb_flow_dissect(const struct sk_buff *skb,

if (dissector_uses_key(flow_dissector,
FLOW_DISSECTOR_KEY_IPV6_ADDRS)) {
struct flow_dissector_key_ipv6_addrs *key_ipv6_addrs;

key_ipv6_addrs = skb_flow_dissector_target(flow_dissector,
FLOW_DISSECTOR_KEY_IPV6_ADDRS,
target_container);
key_addrs = skb_flow_dissector_target(flow_dissector,
FLOW_DISSECTOR_KEY_IPV6_ADDRS,
target_container);

memcpy(key_ipv6_addrs, &iph->saddr, sizeof(*key_ipv6_addrs));
memcpy(&key_addrs->v6addrs, &iph->saddr,
sizeof(key_addrs->v6addrs));
key_control->addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS;
}

Expand Down

0 comments on commit b3c3106

Please sign in to comment.