Skip to content

Commit

Permalink
DO-NOT-MERGE: mptcp: improve code coverage for CI
Browse files Browse the repository at this point in the history
tcp: warn if tcp_done() is called on a closed socket

  This is an extra check mainly for the CIs: to make sure we don't call
  tcp_done() on an already closed socket as it happened in the past. If
  we do such call, better to catch the error earlier.

mptcp: warn in case of bogus mpc option on established client sk

  As discussed on [1], an additional check is done to catch local
  software bug.

  This patch is supposed to land only in our tree, for both 'export' and
  'export-net' branches, because the warning could be triggered by
  bugged / malicious peer. We want it in our tree for our CI to detect
  internal bugs.

  Link: https://lore.kernel.org/all/20240215-mptcp-fix-bogus-pr-warn-v1-1-d14c10312820@kernel.org/ [1]

Signed-off-by: Matthieu Baerts <matttbe@kernel.org>
  • Loading branch information
matttbe committed Jun 14, 2024
1 parent 7340985 commit 66ecd2f
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 1 deletion.
2 changes: 2 additions & 0 deletions net/ipv4/tcp.c
Original file line number Diff line number Diff line change
Expand Up @@ -4593,6 +4593,8 @@ void tcp_done(struct sock *sk)
*/
req = rcu_dereference_protected(tcp_sk(sk)->fastopen_rsk, 1);

WARN_ON_ONCE(sk->sk_state == TCP_CLOSE);

if (sk->sk_state == TCP_SYN_SENT || sk->sk_state == TCP_SYN_RECV)
TCP_INC_STATS(sock_net(sk), TCP_MIB_ATTEMPTFAILS);

Expand Down
3 changes: 2 additions & 1 deletion net/mptcp/options.c
Original file line number Diff line number Diff line change
Expand Up @@ -982,7 +982,8 @@ static bool check_fully_established(struct mptcp_sock *msk, struct sock *ssk,
WRITE_ONCE(msk->pm.remote_deny_join_id0, true);

if (unlikely(!READ_ONCE(msk->pm.server_side)))
pr_warn_once("bogus mpc option on established client sk");
/* DO-NOT-MERGE: use WARN i/o pr_warn: only for MPTCP export */
WARN_ONCE(1, "bogus mpc option on established client sk");

set_fully_established:
mptcp_data_lock((struct sock *)msk);
Expand Down

0 comments on commit 66ecd2f

Please sign in to comment.