git: 0e096bb3fcaa - main - netlink: Fix getting route scope of interface's IPv4 addresses
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 07 Mar 2025 04:15:12 UTC
The branch main has been updated by zlei:
URL: https://cgit.FreeBSD.org/src/commit/?id=0e096bb3fcaaf663df372aa4abb986e8d63c6e68
commit 0e096bb3fcaaf663df372aa4abb986e8d63c6e68
Author: Zhenlei Huang <zlei@FreeBSD.org>
AuthorDate: 2025-03-07 04:14:44 +0000
Commit: Zhenlei Huang <zlei@FreeBSD.org>
CommitDate: 2025-03-07 04:14:44 +0000
netlink: Fix getting route scope of interface's IPv4 addresses
sin_addr of a `struct sockaddr_in` is stored in network byte order, but
IN_LOOPBACK() and IN_LINKLOCAL() want the host order.
Reviewed by: melifaro, #network
Fixes: 7e5bf68495cc netlink: add netlink support
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D49226
---
sys/netlink/route/iface.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sys/netlink/route/iface.c b/sys/netlink/route/iface.c
index 93465e55e6aa..8b871576d0b2 100644
--- a/sys/netlink/route/iface.c
+++ b/sys/netlink/route/iface.c
@@ -818,9 +818,9 @@ ifa_get_scope(const struct ifaddr *ifa)
{
struct in_addr addr;
addr = ((const struct sockaddr_in *)sa)->sin_addr;
- if (IN_LOOPBACK(addr.s_addr))
+ if (IN_LOOPBACK(ntohl(addr.s_addr)))
addr_scope = RT_SCOPE_HOST;
- else if (IN_LINKLOCAL(addr.s_addr))
+ else if (IN_LINKLOCAL(ntohl(addr.s_addr)))
addr_scope = RT_SCOPE_LINK;
break;
}