Re: [PATCH net-next 1/9] openvswitch: Scrub packet in ovs_vport_receive()

Pravin Shelar
2015-07-31T03:43:23Z

On Thu, Jul 30, 2015 at 11:12 AM, Joe Stringer <joestringer@nicira.com> wrote:
> Signed-off-by: Joe Stringer <joestringer@nicira.com>
> ---
> net/openvswitch/vport.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/net/openvswitch/vport.c b/net/openvswitch/vport.c
> index d14f594..baa018f 100644
> --- a/net/openvswitch/vport.c
> +++ b/net/openvswitch/vport.c
> @@ -475,6 +475,9 @@ void ovs_vport_receive(struct vport *vport, struct sk_buff *skb,
> struct sw_flow_key key;
> int error;
>
> + if (!skb->sk || (sock_net(skb->sk) != read_pnet(&vport->dp->net)))
> + skb_scrub_packet(skb, true);
> +
skb scrub drops dst which cause use-after-free bug for flow based
tunnel devices.

> stats = this_cpu_ptr(vport->percpu_stats);
> u64_stats_update_begin(&stats->syncp);
> stats->rx_packets++;
> --
> 2.1.4
>