summaryrefslogtreecommitdiff
path: root/include/linux/timerqueue.h
diff options
context:
space:
mode:
authorRalf Lici <ralf@mandelbit.com>2026-08-28 16:50:26 +0200
committerAntonio Quartulli <antonio@openvpn.net>2026-09-21 11:39:13 +0200
commitaea934a221ec6a867221e5b765f65f1857befd53 (patch)
tree97ff75f3ed4a6af0e24e68dc4d12ed2cfc3b36a4 /include/linux/timerqueue.h
parentfa603710bdb9aea33c0d9cc2c05ed24d84f58753 (diff)
ovpn: replace bind when learning local endpoint
struct ovpn_bind is published through peer->bind with RCU, but local endpoint learning updates bind->local in place under peer->lock. UDP TX reads the field without that lock. In particular, a concurrent IPv6 update can therefore result in a torn address read. Use ovpn_peer_reset_sockaddr to publish a replacement bind when learning a new local endpoint, just as a remote endpoint change does. Preserve the current remote address and reset the dst cache only after the new bind has been published successfully. Track remote endpoint changes separately so that float notification and transport-address rehashing remain limited to actual peer floats. Fixes: f0281c1d3732 ("ovpn: add support for updating local or remote UDP endpoint") Signed-off-by: Ralf Lici <ralf@mandelbit.com> Signed-off-by: Antonio Quartulli <antonio@openvpn.net>
Diffstat (limited to 'include/linux/timerqueue.h')
0 files changed, 0 insertions, 0 deletions