]> git.itanic.dy.fi Git - linux-stable/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)
committerJakub Kicinski <kuba@kernel.org>
Wed, 28 Feb 2024 23:24:34 +0000 (15:24 -0800)
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>
tools/net/ynl/lib/ynl.c

index 6e6d474c83664741a5de5192c410afefe35cc5ad..45e49671ae87b01fac48b2877f46403cf9ee1c36 100644 (file)
@@ -523,6 +523,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;