From 4f4d9ea1ef5e4996c6eebe5e661e3ed00133d643 Mon Sep 17 00:00:00 2001 From: Allan Date: Fri, 3 Jul 2026 12:28:57 +0300 Subject: [PATCH] sockets: skip NULL ifa_addr entries in get_interfaces instead of stopping --- src/rpp/sockets.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/rpp/sockets.cpp b/src/rpp/sockets.cpp index 70db561..40f7121 100644 --- a/src/rpp/sockets.cpp +++ b/src/rpp/sockets.cpp @@ -641,14 +641,14 @@ namespace rpp if (!getifaddrs(&if_addrs)) { int count = 0; - for (auto* ifa = if_addrs; (ifa && ifa->ifa_addr); ifa = ifa->ifa_next) { - if (!family || ifa->ifa_addr->sa_family == family) ++count; + for (auto* ifa = if_addrs; ifa; ifa = ifa->ifa_next) { + if (ifa->ifa_addr && (!family || ifa->ifa_addr->sa_family == family)) ++count; } out.reserve(count); - for (auto* ifa = if_addrs; (ifa && ifa->ifa_addr); ifa = ifa->ifa_next) + for (auto* ifa = if_addrs; ifa; ifa = ifa->ifa_next) { - if (!family || ifa->ifa_addr->sa_family == family) + if (ifa->ifa_addr && (!family || ifa->ifa_addr->sa_family == family)) { ipinterface& in = out.emplace_back(); in.name = std::string{ifa->ifa_name}; @@ -2287,4 +2287,3 @@ namespace rpp //////////////////////////////////////////////////////////////////////////////// } // namespace rpp -