From nobody Mon Feb 9 09:08:58 2026 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ab0:590e:0:0:0:0:0 with SMTP id n14csp3841418uad; Tue, 5 Jul 2022 14:32:29 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vp/E3VcELg8jz6jqeD4gnynXD1lA9KOd5TWFEhVxl8wPFl8pOKfqMbPc0kn4cqBVOytKiJ X-Received: by 2002:a05:622a:199b:b0:319:d157:a51f with SMTP id u27-20020a05622a199b00b00319d157a51fmr30515454qtc.562.1657056749228; Tue, 05 Jul 2022 14:32:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1657056749; cv=none; d=google.com; s=arc-20160816; b=0kg0BNHZr59HVVgGjzM2oNgvOYCwKRJm+Tv4dHixvY8V2zpvxWyWsFwBNjbT1Jf+Xj cNmsURgU+gm/1QUJMeTsgCdAYEh/NTBuYAlP2CKMXsdc2Tk4UNcPNs2oaakUR6tBGeKs b2qUsoDuN3/2huvakYgoi1cVuG75HTf5eUcfUUQHa6p3iREHeC0rd7P5VLBbDsYxCwo+ XEO3yqDDvhKNCzp5gOrOpIwK+TYSmX9IxdUhVHSDEL21CKz1Z0cBa6kWu8Db3KmGC65k PYhK3iEumkWOz2pVozp4iysibxRDAxW+VehFRMEYbNXS8mvvn6aQkgY7gvhgZ7Ouwx6l oFrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=g/HVKLnhRqFJ29kYkrR2RyN1cOK04BqlM4Es0Rj+wco=; b=oy3PLLVYlW1kUcueqwEn7Yu/aDdLNrNNuK6wcI8431BKAywGN82iyzPW60z4heXY7U nGg+fLIPuXGhQ3Uav4sum70vvyiA1YR/KbGBZbG27ZZX5rfyZ9pkh8GIQYVEBmScInhI wMz+l0qcFXJrCtpavvwjbjobewCuLvK4Hee+bgfksUQq7TuCI5bQyB4PyyYHjd27kZdl c1GaZjmC6CjSDEQywXvrs/95XeiIwT3NCeBji5AZpLljP6ln6Wfp+qvuP+0vdG4IbTSr 7yLJgwAtKyyS5bQxOc4drHuyfvR2K/P2cZlQuXWdBc3HOFNObroP8zY23uHpC0Or/JGY GyGQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=e6N48Kq4; spf=pass (google.com: domain of mptcp+bounces-5956-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.199.223 as permitted sender) smtp.mailfrom="mptcp+bounces-5956-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id c23-20020ac80097000000b003050ac1fb09si19134963qtg.85.2022.07.05.14.32.29 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 Jul 2022 14:32:29 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5956-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=e6N48Kq4; spf=pass (google.com: domain of mptcp+bounces-5956-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.199.223 as permitted sender) smtp.mailfrom="mptcp+bounces-5956-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id E6B751C208DB for ; Tue, 5 Jul 2022 21:32:28 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8C84533C7; Tue, 5 Jul 2022 21:32:25 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 064932F34 for ; Tue, 5 Jul 2022 21:32:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1657056744; x=1688592744; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=/+KwzJcQwLoHt3LVM4fr/J+/A5rhuhTFgU08baoBP4U=; b=e6N48Kq4sy3M/jBDjEgzE6x4SxxZRKAAtEOkDVHxf5jb9aEDy81oqBBq XXKUdNYoRNtiLZH+SKxR/8G6kZIQyQ7j3pxWoq8CpgDmpP8Ij6rO/Z8uP oyb2ieBWToUSWd35OiCa0nJbO/TK//qL2F7a1HlNS8ko4wHrabLMcx2x8 PxQ5cyJ/g4DZh3IhgWeifye2uint+JzB6zRncSQ7DX/FNMJw6/wQseVGk UlaumKFFHJPw6lS84l8PSS41pFuKE5qcn8T1qEp5WGJ/hmBkpe/MjZpLb k2kor/2lVy/8JPnlgadGS+L8FycmVSoyUbY23cJBn5mct2Vp5LRnAJi4b g==; X-IronPort-AV: E=McAfee;i="6400,9594,10399"; a="284633922" X-IronPort-AV: E=Sophos;i="5.92,247,1650956400"; d="scan'208";a="284633922" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Jul 2022 14:32:22 -0700 X-IronPort-AV: E=Sophos;i="5.92,247,1650956400"; d="scan'208";a="590558741" Received: from rcenter-mobl.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.17.169]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Jul 2022 14:32:22 -0700 From: Mat Martineau To: netdev@vger.kernel.org Cc: Paolo Abeni , davem@davemloft.net, kuba@kernel.org, edumazet@google.com, fw@strlen.de, geliang.tang@suse.com, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Mat Martineau Subject: [PATCH net 1/7] mptcp: fix locking in mptcp_nl_cmd_sf_destroy() Date: Tue, 5 Jul 2022 14:32:11 -0700 Message-Id: <20220705213217.146898-2-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.37.0 In-Reply-To: <20220705213217.146898-1-mathew.j.martineau@linux.intel.com> References: <20220705213217.146898-1-mathew.j.martineau@linux.intel.com> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Paolo Abeni The user-space PM subflow removal path uses a couple of helpers that must be called under the msk socket lock and the current code lacks such requirement. Change the existing lock scope so that the relevant code is under its protection. Fixes: 702c2f646d42 ("mptcp: netlink: allow userspace-driven subflow establ= ishment") Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/287 Signed-off-by: Paolo Abeni Signed-off-by: Mat Martineau --- net/mptcp/pm_userspace.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index f56378e4f597..26212bebc5ed 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -306,15 +306,11 @@ static struct sock *mptcp_nl_find_ssk(struct mptcp_so= ck *msk, const struct mptcp_addr_info *local, const struct mptcp_addr_info *remote) { - struct sock *sk =3D &msk->sk.icsk_inet.sk; struct mptcp_subflow_context *subflow; - struct sock *found =3D NULL; =20 if (local->family !=3D remote->family) return NULL; =20 - lock_sock(sk); - mptcp_for_each_subflow(msk, subflow) { const struct inet_sock *issk; struct sock *ssk; @@ -347,16 +343,11 @@ static struct sock *mptcp_nl_find_ssk(struct mptcp_so= ck *msk, } =20 if (issk->inet_sport =3D=3D local->port && - issk->inet_dport =3D=3D remote->port) { - found =3D ssk; - goto found; - } + issk->inet_dport =3D=3D remote->port) + return ssk; } =20 -found: - release_sock(sk); - - return found; + return NULL; } =20 int mptcp_nl_cmd_sf_destroy(struct sk_buff *skb, struct genl_info *info) @@ -412,6 +403,7 @@ int mptcp_nl_cmd_sf_destroy(struct sk_buff *skb, struct= genl_info *info) } =20 sk =3D &msk->sk.icsk_inet.sk; + lock_sock(sk); ssk =3D mptcp_nl_find_ssk(msk, &addr_l, &addr_r); if (ssk) { struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(ssk); @@ -422,8 +414,9 @@ int mptcp_nl_cmd_sf_destroy(struct sk_buff *skb, struct= genl_info *info) } else { err =3D -ESRCH; } + release_sock(sk); =20 - destroy_err: +destroy_err: sock_put((struct sock *)msk); return err; } --=20 2.37.0