[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAKgT0Ud3jDRffiEx3iXEy4NgiRcf3tFKvOh8aa-gbiv3biy4mw@mail.gmail.com>
Date: Thu, 12 May 2016 13:15:14 -0700
From: Alexander Duyck <alexander.duyck@...il.com>
To: Cong Wang <xiyou.wangcong@...il.com>
Cc: Alexander Duyck <aduyck@...antis.com>,
Linux Kernel Network Developers <netdev@...r.kernel.org>,
David Miller <davem@...emloft.net>,
Thomas Graf <tgraf@...g.ch>, Tom Herbert <tom@...bertland.com>,
Jiri Benc <jbenc@...hat.com>,
Eric Dumazet <eric.dumazet@...il.com>
Subject: Re: [net-next PATCH v2] udp: Resolve NULL pointer dereference over
flow-based vxlan device
On Thu, May 12, 2016 at 1:02 PM, Cong Wang <xiyou.wangcong@...il.com> wrote:
> On Thu, May 12, 2016 at 12:51 PM, Alexander Duyck <aduyck@...antis.com> wrote:
>> The following trace is seen when receiving a DHCP request over a flow-based
>> VXLAN tunnel. I believe this is caused by the metadata dst having a NULL
>> dev value and as a result dev_net(dev) is causing a NULL pointer dereference.
>>
>> To resolve this I am replacing the check for skb_dst() with skb_valid_dst()
>> so that we do not attempt to use the metadata dst to retrieve a device in
>> order to determine the network namespace.
>
> Why does UDP layer need to care about tunnel layer things?
>
> If the problem is really what you describe, then the tunnel layer
> should reset that dst after finish.
A metadata dst is inserted by the tunnel layer after it has released
the regular dst that routed the packet to the tunnel. My
understanding is it is used by OVS to handle the routing of the packet
after it has come out of the tunnel but before it has gone up through
the IP stack. All of this was introduced back around the time of the
lightweight tunnels.
- Alex
Powered by blists - more mailing lists