From c1cedcfaf53ff82c2b2450b2d28efcf7bc06034a Mon Sep 17 00:00:00 2001 From: Mike Brady Date: Wed, 30 Apr 2014 20:39:09 +0100 Subject: [PATCH] Don't remember this -- seems a little extra error checking is done. --- mdns_tinysvcmdns.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mdns_tinysvcmdns.c b/mdns_tinysvcmdns.c index 6fe55d3b..46c63ff0 100644 --- a/mdns_tinysvcmdns.c +++ b/mdns_tinysvcmdns.c @@ -62,14 +62,16 @@ static int mdns_tinysvcmdns_register(char *apname, int port) { // Look for an ipv4/ipv6 non-loopback interface to use as the main one. for (ifa = ifalist; ifa != NULL; ifa = ifa->ifa_next) { - if (!(ifa->ifa_flags & IFF_LOOPBACK) && ifa->ifa_addr->sa_family == AF_INET) + if (!(ifa->ifa_flags & IFF_LOOPBACK) && ifa->ifa_addr && + ifa->ifa_addr->sa_family == AF_INET) { uint32_t main_ip = ((struct sockaddr_in *)ifa->ifa_addr)->sin_addr.s_addr; mdnsd_set_hostname(svr, hostname, main_ip); break; } - else if (!(ifa->ifa_flags & IFF_LOOPBACK) && ifa->ifa_addr->sa_family == AF_INET6) + else if (!(ifa->ifa_flags & IFF_LOOPBACK) && ifa->ifa_addr && + ifa->ifa_addr->sa_family == AF_INET6) { struct in6_addr *addr = &((struct sockaddr_in6 *)ifa->ifa_addr)->sin6_addr;