gluon-radvd: fix NULL deref

The specification says that the ifa_addr field of struct ifaddrs may be NULL,
and in Barrier Breaker, this does actually occur...
This commit is contained in:
Matthias Schiffer 2014-08-04 22:57:26 +02:00
parent ce1a160bcc
commit 07ce01517c

View File

@ -266,7 +266,7 @@ static void update_interface(void) {
memset(&G.iface.ifaddr, 0, sizeof(G.iface.ifaddr)); memset(&G.iface.ifaddr, 0, sizeof(G.iface.ifaddr));
for (addr = addrs; addr; addr = addr->ifa_next) { for (addr = addrs; addr; addr = addr->ifa_next) {
if (addr->ifa_addr->sa_family != AF_INET6) if (!addr->ifa_addr || addr->ifa_addr->sa_family != AF_INET6)
continue; continue;
const struct sockaddr_in6 *in6 = (const struct sockaddr_in6 *)addr->ifa_addr; const struct sockaddr_in6 *in6 = (const struct sockaddr_in6 *)addr->ifa_addr;