mbox series

[mptcp-net,0/4] mptcp: fix duplicate subflow creation

Message ID cover.1707144963.git.pabeni@redhat.com (mailing list archive)
Headers show
Series mptcp: fix duplicate subflow creation | expand

Message

Paolo Abeni Feb. 5, 2024, 3:51 p.m. UTC
As reported by Mat, the in kernel PM can, in some edge scenarios,
unexpectedly create multiple subflows with the same local and remote
address.

The real fix is implemented by patch 4/4 with some more accurate check
at subflow creation time.

Patches 1-3 are roughly optional pre-requisities, added to avoid
introducing more data-races with the actual fix. Patch 1/4 is a bit
debatable, as it changes the existing ULP API, but I could not find a
better solution and there is some similar prior art:
commit 0df48c26d841 ("tcp: add tcpi_bytes_acked to tcp_info")

Paolo Abeni (4):
  mptcp: fix lockless access in subflow ULP diag
  mptcp: fix data races on local_id
  mptcp: fix data races on remote_id
  mptcp: fix duplicate subflow creation

 include/net/tcp.h      |  2 +-
 net/mptcp/diag.c       |  6 +++++-
 net/mptcp/pm_netlink.c | 43 ++++++++++++++++++++++--------------------
 net/mptcp/protocol.c   |  2 +-
 net/mptcp/protocol.h   | 15 ++++++++++++---
 net/mptcp/subflow.c    | 15 ++++++++-------
 net/tls/tls_main.c     |  2 +-
 7 files changed, 51 insertions(+), 34 deletions(-)