[Openvpn-devel,net,v3,0/9] ovpn: assorted net fixes

Message ID 20260727200705.869169-1-a@unstable.cc
Headers
Series ovpn: assorted net fixes |

Message

Antonio Quartulli July 27, 2026, 8:06 p.m. UTC
  From: Antonio Quartulli <antonio@openvpn.net>

Hi all,

This is v3 of the collected ovpn fixes for net, sent here for review
(and sashiko pre-review) before submission to netdev as a pull
request.

Changes since v2:
* dropped "ovpn: tcp - fix peer reference leak on deferred deletion"
  (v2 5/9): the deferred-deletion reference is already taken before
  scheduling the work in the current tree, so the patch is no longer
  needed (the v2 version also introduced a TOCTOU race)
* added "ovpn: invalidate the UDP TX dst_cache when the flow key
  changes"
* "ovpn: rehash peer in by_transp_addr table on CMD_PEER_SET":
  restored the peer->ovpn->lock and peer->lock acquisitions that the
  __ovpn_peer_hash_transp_addr() refactor had accidentally dropped
  from ovpn_peer_endpoints_update(); without them an MP float hit a
  lockdep splat and a double unlock (panic)
* "ovpn: disable IPv4 redirects on MP interfaces": moved the
  SEND_REDIRECTS handling to ndo_open() so it is re-applied on every
  bring-up and survives the IPv4 in_device being recreated (e.g. after
  moving the interface to another netns)

Thanks,
	Antonio

Antonio Quartulli (9):
  ovpn: skip rehash for peers already removed from by_id
  ovpn: rehash peer in by_transp_addr table on CMD_PEER_SET
  ovpn: fix data race reading cached local endpoint on TX path
  ovpn: ensure socket is owned by ovpn before deref sk_user_data
  ovpn: zero-initialize sockaddr before learning a floated endpoint
  ovpn: hash floated peer by transport identity only
  ovpn: disable IPv4 redirects on MP interfaces
  ovpn: ensure TCP vars are initialized first
  ovpn: invalidate the UDP TX dst_cache when the flow key changes

 drivers/net/ovpn/main.c    |  60 +++++++++----
 drivers/net/ovpn/netlink.c |  19 ++++-
 drivers/net/ovpn/peer.c    | 167 +++++++++++++++++++++++++++++--------
 drivers/net/ovpn/peer.h    |  15 ++++
 drivers/net/ovpn/socket.c  |   9 ++
 drivers/net/ovpn/udp.c     |  87 +++++++++++++++----
 6 files changed, 286 insertions(+), 71 deletions(-)