6.7-stable review patch. If anyone has any objections, please let me know.
------------------
From: Jakub Kicinski kuba@kernel.org
[ Upstream commit b6c65eb20ffa8e3bd89f551427dbeee2876d72ca ]
We never increment the group number iterator, so all groups get recorded into index 0 of the mcast_groups[] array.
As a result YNL can only handle using the last group. For example using the "netdev" sample on kernel with page pool commands results in:
$ ./samples/netdev YNL: Multicast group 'mgmt' not found
Most families have only one multicast group, so this hasn't been noticed. Plus perhaps developers usually test the last group which would have worked.
Fixes: 86878f14d71a ("tools: ynl: user space helpers") Reviewed-by: Donald Hunter donald.hunter@gmail.com Acked-by: Nicolas Dichtel nicolas.dichtel@6wind.com Link: https://lore.kernel.org/r/20240226214019.1255242-1-kuba@kernel.org Signed-off-by: Jakub Kicinski kuba@kernel.org Signed-off-by: Sasha Levin sashal@kernel.org --- tools/net/ynl/lib/ynl.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/tools/net/ynl/lib/ynl.c b/tools/net/ynl/lib/ynl.c index 591f5f50ddaab..2aa19004fa0cf 100644 --- a/tools/net/ynl/lib/ynl.c +++ b/tools/net/ynl/lib/ynl.c @@ -519,6 +519,7 @@ ynl_get_family_info_mcast(struct ynl_sock *ys, const struct nlattr *mcasts) ys->mcast_groups[i].name[GENL_NAMSIZ - 1] = 0; } } + i++; }
return 0;