]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
tools: ynl: fix handling of multiple mcast groups
authorJakub Kicinski <kuba@kernel.org>
Mon, 26 Feb 2024 21:40:18 +0000 (13:40 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 6 Mar 2024 14:48:36 +0000 (14:48 +0000)
[ 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

index 11a7a889d279c78ede379e814433ba2527918256..ae61ae5b02bf88b913dc75cdc023892f27fb38c5 100644 (file)
@@ -507,6 +507,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;