From c40b05b4c4226b2c4323a9ba5b096377931682ef Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Tue, 9 Dec 2008 00:16:11 +0000 Subject: getaddrinfo: runp->ifa_addr indeed can be NULL, don't dereference it ifaddrs.c: cosmetics, no code changes --- libc/inet/getaddrinfo.c | 2 ++ libc/inet/ifaddrs.c | 5 +---- 2 files changed, 3 insertions(+), 4 deletions(-) (limited to 'libc/inet') diff --git a/libc/inet/getaddrinfo.c b/libc/inet/getaddrinfo.c index b1aae1281..25a5b8022 100644 --- a/libc/inet/getaddrinfo.c +++ b/libc/inet/getaddrinfo.c @@ -189,6 +189,8 @@ static unsigned __check_pf(void) } for (runp = ifa; runp != NULL; runp = runp->ifa_next) { + if (runp->ifa_addr == NULL) + continue; #if defined __UCLIBC_HAS_IPV4__ if (runp->ifa_addr->sa_family == PF_INET) seen |= SEEN_IPV4; diff --git a/libc/inet/ifaddrs.c b/libc/inet/ifaddrs.c index 3afc6b923..1d54d5123 100644 --- a/libc/inet/ifaddrs.c +++ b/libc/inet/ifaddrs.c @@ -452,10 +452,7 @@ getifaddrs (struct ifaddrs **ifap) /* Allocate memory for all entries we have and initialize next pointer. */ - ifas = (struct ifaddrs_storage *) calloc (1, - (newlink + newaddr) - * sizeof (struct ifaddrs_storage) - + ifa_data_size); + ifas = calloc (1, (newlink + newaddr) * sizeof (ifas[0]) + ifa_data_size); if (ifas == NULL) { result = -1; -- cgit v1.2.3