Created attachment 11419 [details] Patches for ./lib/socket/interfaces.c The code to collect the interface list does not check that each address is either an IPV4 or and IPV6 address when building the list, it checks for the presence of an ifa_addr and an ifa_netmask field, but this is not always enough. The iface_comp function only returns defined results for AF_INET or AF_INET6 addresses, for anything else it always returns 0. This can leave a situation where the resultant list order is undefined resulting in an assertion caused by the macro #define TYPESAFE_QSORT(base, numel, comparison) \ do { \ if (numel > 1) { \ qsort(base, numel, sizeof((base)[0]), (int (*)(const void *, const void *))comparison); \ assert(comparison(&((base)[0]), &((base)[1])) <= 0); \ } \ } while (0) The solution to this is i believe to build the list based on only valid ipv4 or ipv6 address as per the attached patch.