On Thu, Jul 7, 2016 at 5:23 PM, Pravin B Shelar <pshe...@ovn.org> wrote:
> diff --git a/datapath/linux/compat/include/net/dst_metadata.h 
> b/datapath/linux/compat/include/net/dst_metadata.h
> index f15bb03..b54cfc0 100644
> --- a/datapath/linux/compat/include/net/dst_metadata.h
> +++ b/datapath/linux/compat/include/net/dst_metadata.h
> +static inline void ovs_tun_rx_dst(struct ip_tunnel_info *info, int md_size)
> +{
> +       /* No need to allocate for OVS backport case. */
> +#if 0
> +       struct metadata_dst *tun_dst;
> +       struct ip_tunnel_info *info;
> +
> +       tun_dst = metadata_dst_alloc(md_size, GFP_ATOMIC);
> +       if (!tun_dst)
> +               return NULL;
> +#endif
> +       info->mode = 0;
> +       info->options_len = 0;
> +}

One thing that I noticed when reviewing the last patch is that
upstream does a memset() (through __metadata_dst_init()) of
ip_tunnel_info as part of this when metadata_dst_alloc() is called -
which is missing here since the storage space is from the stack. This
also applies to the allocation of the metadata_dst when it is
allocated as part of the flow.

I don't think that this has any effect in practice at the moment since
we current overwrite the whole thing whenever we use the metadata_dst.
However, it would probably be good to match upstream to avoid any
subtle bugs from uninitialized memory.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to