]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
ip/ipmroute: use preferred_family to get prefix
authorHangbin Liu <liuhangbin@gmail.com>
Wed, 9 Oct 2024 09:53:09 +0000 (09:53 +0000)
committerStephen Hemminger <stephen@networkplumber.org>
Thu, 10 Oct 2024 16:52:49 +0000 (09:52 -0700)
The mroute family is reset to RTNL_FAMILY_IPMR or RTNL_FAMILY_IP6MR when
retrieving the multicast routing cache. However, the get_prefix() and
subsequently __get_addr_1() cannot identify these families. Using
preferred_family to obtain the prefix can resolve this issue.

Fixes: 98ce99273f24 ("mroute: fix up family handling")
Reported-by: Jianlin Shi <jishi@redhat.com>
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
ip/ipmroute.c

index da58d2953049d2a6200d02c10c67cc34be5e4161..c540eab133a41942e084ac45acd3035038ce7745 100644 (file)
@@ -271,7 +271,7 @@ static int mroute_list(int argc, char **argv)
                        id = *argv;
                } else if (matches(*argv, "from") == 0) {
                        NEXT_ARG();
-                       if (get_prefix(&filter.msrc, *argv, family))
+                       if (get_prefix(&filter.msrc, *argv, preferred_family))
                                invarg("from value is invalid\n", *argv);
                } else {
                        if (strcmp(*argv, "to") == 0) {
@@ -279,7 +279,7 @@ static int mroute_list(int argc, char **argv)
                        }
                        if (matches(*argv, "help") == 0)
                                usage();
-                       if (get_prefix(&filter.mdst, *argv, family))
+                       if (get_prefix(&filter.mdst, *argv, preferred_family))
                                invarg("to value is invalid\n", *argv);
                }
                argc--; argv++;