On Wed, Feb 24, 2016 at 9:29 AM, Alexander Duyck <[email protected]> wrote:
> 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 <[email protected]>

Acked-by: Tom Herbert <[email protected]>

> ---
>  net/core/flow_dissector.c |   11 +++++------
>  1 file changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c
> index 6288153d7f36..7c7b8739b8b8 100644
> --- a/net/core/flow_dissector.c
> +++ b/net/core/flow_dissector.c
> @@ -220,13 +220,12 @@ ipv6:
>
>                 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;
>                 }
>
>

Reply via email to