From f305296e40c5a5b40d5af6f47f3f0e669e52e604 Mon Sep 17 00:00:00 2001 From: Hangbin Liu Date: Wed, 9 Oct 2024 09:53:09 +0000 Subject: [PATCH] ip/ipmroute: use preferred_family to get prefix 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 Signed-off-by: Hangbin Liu Signed-off-by: Stephen Hemminger --- ip/ipmroute.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ip/ipmroute.c b/ip/ipmroute.c index da58d295..c540eab1 100644 --- a/ip/ipmroute.c +++ b/ip/ipmroute.c @@ -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++;