MPTCP Linux Development
 help / color / mirror / Atom feed
* [PATCH net 0/2] mptcp: pm: fix wrong perm and sock kfree
@ 2024-11-04 12:31 Matthieu Baerts (NGI0)
  2024-11-04 12:31 ` [PATCH net 1/2] mptcp: no admin perm to list endpoints Matthieu Baerts (NGI0)
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Matthieu Baerts (NGI0) @ 2024-11-04 12:31 UTC (permalink / raw)
  To: mptcp, Mat Martineau, Geliang Tang, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Simon Horman, Donald Hunter,
	Davide Caratti
  Cc: netdev, linux-kernel, Matthieu Baerts (NGI0), stable,
	Geliang Tang

Two small fixes related to the MPTCP path-manager:

- Patch 1: remove an accidental restriction to admin users to list MPTCP
  endpoints. A regression from v6.7.

- Patch 2: correctly use sock_kfree_s() instead of kfree() in the
  userspace PM. A fix for another fix introduced in v6.4 and
  backportable up to v5.19.

Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
Geliang Tang (1):
      mptcp: use sock_kfree_s instead of kfree

Matthieu Baerts (NGI0) (1):
      mptcp: no admin perm to list endpoints

 Documentation/netlink/specs/mptcp_pm.yaml | 1 -
 net/mptcp/mptcp_pm_gen.c                  | 1 -
 net/mptcp/pm_userspace.c                  | 3 ++-
 3 files changed, 2 insertions(+), 3 deletions(-)
---
base-commit: 5ccdcdf186aec6b9111845fd37e1757e9b413e2f
change-id: 20241104-net-mptcp-misc-6-12-34ca759f78ee

Best regards,
-- 
Matthieu Baerts (NGI0) <matttbe@kernel.org>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH net 1/2] mptcp: no admin perm to list endpoints
  2024-11-04 12:31 [PATCH net 0/2] mptcp: pm: fix wrong perm and sock kfree Matthieu Baerts (NGI0)
@ 2024-11-04 12:31 ` Matthieu Baerts (NGI0)
  2024-11-04 12:31 ` [PATCH net 2/2] mptcp: use sock_kfree_s instead of kfree Matthieu Baerts (NGI0)
  2024-11-06  2:20 ` [PATCH net 0/2] mptcp: pm: fix wrong perm and sock kfree patchwork-bot+netdevbpf
  2 siblings, 0 replies; 4+ messages in thread
From: Matthieu Baerts (NGI0) @ 2024-11-04 12:31 UTC (permalink / raw)
  To: mptcp, Mat Martineau, Geliang Tang, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Simon Horman, Donald Hunter,
	Davide Caratti
  Cc: netdev, linux-kernel, Matthieu Baerts (NGI0), stable

During the switch to YNL, the command to list all endpoints has been
accidentally restricted to users with admin permissions.

It looks like there are no reasons to have this restriction which makes
it harder for a user to quickly check if the endpoint list has been
correctly populated by an automated tool. Best to go back to the
previous behaviour then.

mptcp_pm_gen.c has been modified using ynl-gen-c.py:

   $ ./tools/net/ynl/ynl-gen-c.py --mode kernel \
     --spec Documentation/netlink/specs/mptcp_pm.yaml --source \
     -o net/mptcp/mptcp_pm_gen.c

The header file doesn't need to be regenerated.

Fixes: 1d0507f46843 ("net: mptcp: convert netlink from small_ops to ops")
Cc: stable@vger.kernel.org
Reviewed-by: Davide Caratti <dcaratti@redhat.com>
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
 Documentation/netlink/specs/mptcp_pm.yaml | 1 -
 net/mptcp/mptcp_pm_gen.c                  | 1 -
 2 files changed, 2 deletions(-)

diff --git a/Documentation/netlink/specs/mptcp_pm.yaml b/Documentation/netlink/specs/mptcp_pm.yaml
index 30d8342cacc8704c42b84c9e03f96c906e81733e..dc190bf838fec6add28b61e5e2cac8dee601b012 100644
--- a/Documentation/netlink/specs/mptcp_pm.yaml
+++ b/Documentation/netlink/specs/mptcp_pm.yaml
@@ -293,7 +293,6 @@ operations:
       doc: Get endpoint information
       attribute-set: attr
       dont-validate: [ strict ]
-      flags: [ uns-admin-perm ]
       do: &get-addr-attrs
         request:
           attributes:
diff --git a/net/mptcp/mptcp_pm_gen.c b/net/mptcp/mptcp_pm_gen.c
index c30a2a90a19252dd41a74109d5762a091129269d..bfb37c5a88c4ef90740699dfda345b52e206966b 100644
--- a/net/mptcp/mptcp_pm_gen.c
+++ b/net/mptcp/mptcp_pm_gen.c
@@ -112,7 +112,6 @@ const struct genl_ops mptcp_pm_nl_ops[11] = {
 		.dumpit		= mptcp_pm_nl_get_addr_dumpit,
 		.policy		= mptcp_pm_get_addr_nl_policy,
 		.maxattr	= MPTCP_PM_ATTR_TOKEN,
-		.flags		= GENL_UNS_ADMIN_PERM,
 	},
 	{
 		.cmd		= MPTCP_PM_CMD_FLUSH_ADDRS,

-- 
2.45.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH net 2/2] mptcp: use sock_kfree_s instead of kfree
  2024-11-04 12:31 [PATCH net 0/2] mptcp: pm: fix wrong perm and sock kfree Matthieu Baerts (NGI0)
  2024-11-04 12:31 ` [PATCH net 1/2] mptcp: no admin perm to list endpoints Matthieu Baerts (NGI0)
@ 2024-11-04 12:31 ` Matthieu Baerts (NGI0)
  2024-11-06  2:20 ` [PATCH net 0/2] mptcp: pm: fix wrong perm and sock kfree patchwork-bot+netdevbpf
  2 siblings, 0 replies; 4+ messages in thread
From: Matthieu Baerts (NGI0) @ 2024-11-04 12:31 UTC (permalink / raw)
  To: mptcp, Mat Martineau, Geliang Tang, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Simon Horman, Donald Hunter,
	Davide Caratti
  Cc: netdev, linux-kernel, Matthieu Baerts (NGI0), stable,
	Geliang Tang

From: Geliang Tang <tanggeliang@kylinos.cn>

The local address entries on userspace_pm_local_addr_list are allocated
by sock_kmalloc().

It's then required to use sock_kfree_s() instead of kfree() to free
these entries in order to adjust the allocated size on the sk side.

Fixes: 24430f8bf516 ("mptcp: add address into userspace pm list")
Cc: stable@vger.kernel.org
Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
 net/mptcp/pm_userspace.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c
index 2cceded3a83a211ffa83f5511fa16f153b49e6bf..56dfea9862b7b24dd0eaa8bbedcf22a7f6829ccf 100644
--- a/net/mptcp/pm_userspace.c
+++ b/net/mptcp/pm_userspace.c
@@ -91,6 +91,7 @@ static int mptcp_userspace_pm_delete_local_addr(struct mptcp_sock *msk,
 						struct mptcp_pm_addr_entry *addr)
 {
 	struct mptcp_pm_addr_entry *entry, *tmp;
+	struct sock *sk = (struct sock *)msk;
 
 	list_for_each_entry_safe(entry, tmp, &msk->pm.userspace_pm_local_addr_list, list) {
 		if (mptcp_addresses_equal(&entry->addr, &addr->addr, false)) {
@@ -98,7 +99,7 @@ static int mptcp_userspace_pm_delete_local_addr(struct mptcp_sock *msk,
 			 * be used multiple times (e.g. fullmesh mode).
 			 */
 			list_del_rcu(&entry->list);
-			kfree(entry);
+			sock_kfree_s(sk, entry, sizeof(*entry));
 			msk->pm.local_addr_used--;
 			return 0;
 		}

-- 
2.45.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH net 0/2] mptcp: pm: fix wrong perm and sock kfree
  2024-11-04 12:31 [PATCH net 0/2] mptcp: pm: fix wrong perm and sock kfree Matthieu Baerts (NGI0)
  2024-11-04 12:31 ` [PATCH net 1/2] mptcp: no admin perm to list endpoints Matthieu Baerts (NGI0)
  2024-11-04 12:31 ` [PATCH net 2/2] mptcp: use sock_kfree_s instead of kfree Matthieu Baerts (NGI0)
@ 2024-11-06  2:20 ` patchwork-bot+netdevbpf
  2 siblings, 0 replies; 4+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-11-06  2:20 UTC (permalink / raw)
  To: Matthieu Baerts
  Cc: mptcp, martineau, geliang, davem, edumazet, kuba, pabeni, horms,
	donald.hunter, dcaratti, netdev, linux-kernel, stable

Hello:

This series was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Mon, 04 Nov 2024 13:31:40 +0100 you wrote:
> Two small fixes related to the MPTCP path-manager:
> 
> - Patch 1: remove an accidental restriction to admin users to list MPTCP
>   endpoints. A regression from v6.7.
> 
> - Patch 2: correctly use sock_kfree_s() instead of kfree() in the
>   userspace PM. A fix for another fix introduced in v6.4 and
>   backportable up to v5.19.
> 
> [...]

Here is the summary with links:
  - [net,1/2] mptcp: no admin perm to list endpoints
    https://git.kernel.org/netdev/net/c/cfbbd4859882
  - [net,2/2] mptcp: use sock_kfree_s instead of kfree
    https://git.kernel.org/netdev/net/c/99635c91fb8b

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-11-06  2:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-04 12:31 [PATCH net 0/2] mptcp: pm: fix wrong perm and sock kfree Matthieu Baerts (NGI0)
2024-11-04 12:31 ` [PATCH net 1/2] mptcp: no admin perm to list endpoints Matthieu Baerts (NGI0)
2024-11-04 12:31 ` [PATCH net 2/2] mptcp: use sock_kfree_s instead of kfree Matthieu Baerts (NGI0)
2024-11-06  2:20 ` [PATCH net 0/2] mptcp: pm: fix wrong perm and sock kfree patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox