From b191e1023c801e3422f3e32878164207bf7eb042 Mon Sep 17 00:00:00 2001 From: lizzie Date: Sat, 28 Feb 2026 20:13:51 +0000 Subject: [PATCH] beware of link_ntoa_r() --- src/core/internal_network/network_interface.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/core/internal_network/network_interface.cpp b/src/core/internal_network/network_interface.cpp index 24254ddfb7..5962f0ca06 100644 --- a/src/core/internal_network/network_interface.cpp +++ b/src/core/internal_network/network_interface.cpp @@ -205,11 +205,15 @@ std::vector GetAvailableNetworkInterfaces() { if (msglen == 0 || msglen < SA_SIZE(sa)) break; if (i == RTA_NETMASK && sa->sa_family == AF_LINK) { - size_t namelen = 0; struct sockaddr_dl const* sdl = reinterpret_cast(sa); +#if defined(__APPLE__) || (defined(__FreeBSD__) && __FreeBSD__ < 15) + iface.name = std::string{::link_ntoa(sdl)}; +#else + size_t namelen = 0; ::link_ntoa_r(sdl, nullptr, &namelen); iface.name = std::string(namelen, ' '); ::link_ntoa_r(sdl, iface.name.data(), &namelen); +#endif std::memcpy(&iface.ip_address, sa, sizeof(struct sockaddr_in)); } msglen -= SA_SIZE(sa);