vxlan: fix use-after-free on deletion
authorMark Bloch <markb@mellanox.com>
Fri, 2 Jun 2017 00:24:08 +0000 (03:24 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 2 Jun 2017 18:29:16 +0000 (14:29 -0400)
commita53cb29b0af346af44e4abf13d7e59f807fba690
treeebd6ee47e68e774a12c024102cc36b3aee5085ee
parent78b07ac1e4c8acc9daf6b7f7b579300328673640
vxlan: fix use-after-free on deletion

Adding a vxlan interface to a socket isn't symmetrical, while adding
is done in vxlan_open() the deletion is done in vxlan_dellink().
This can cause a use-after-free error when we close the vxlan
interface before deleting it.

We add vxlan_vs_del_dev() to match vxlan_vs_add_dev() and call
it from vxlan_stop() to match the call from vxlan_open().

Fixes: 56ef9c909b40 ("vxlan: Move socket initialization to within rtnl scope")
Acked-by: Jiri Benc <jbenc@redhat.com>
Tested-by: Roi Dayan <roid@mellanox.com>
Signed-off-by: Mark Bloch <markb@mellanox.com>
Acked-by: Roopa Prabhu <roopa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vxlan.c