The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=6771ec1d6a50f9cf82e3951711a98a58a9543fc9
commit 6771ec1d6a50f9cf82e3951711a98a58a9543fc9 Author: Zhenlei Huang <z...@freebsd.org> AuthorDate: 2025-03-07 04:14:44 +0000 Commit: Zhenlei Huang <z...@freebsd.org> CommitDate: 2025-03-10 10:23:11 +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 (cherry picked from commit 0e096bb3fcaaf663df372aa4abb986e8d63c6e68) (cherry picked from commit 057165012b4d190a8efef83b465d3bbd10a43e28) --- 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 4a8c78f27f5a..2a6b2aad532b 100644 --- a/sys/netlink/route/iface.c +++ b/sys/netlink/route/iface.c @@ -736,9 +736,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; }