[PATCH ovpn net v3 0/9] ovpn: assorted net fixes

Antonio Quartulli <[email protected]> Mon, 27 Jul 2026 22:06:56 +0200
Newsgroups gmane.network.openvpn.devel
Message-ID <[email protected]>
From: Antonio Quartulli <[email protected]>

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(-)

-- 
2.54.0