diff options
author | Yang Tse <yangsita@gmail.com> | 2009-09-17 11:45:27 +0000 |
---|---|---|
committer | Yang Tse <yangsita@gmail.com> | 2009-09-17 11:45:27 +0000 |
commit | 85442b2a4b136e818fa4d34332c93055b35bb7d8 (patch) | |
tree | cc23f72fd97d39c5772f34eb12fd3dc74b467af4 /ares_getnameinfo.c | |
parent | ada932d94a766e663ca30d686f67008b2546aff1 (diff) | |
download | c-ares-85442b2a4b136e818fa4d34332c93055b35bb7d8.tar.gz c-ares-85442b2a4b136e818fa4d34332c93055b35bb7d8.tar.bz2 c-ares-85442b2a4b136e818fa4d34332c93055b35bb7d8.zip |
Attempt to silence bogus compiler warning: "Potential null pointer dereference"
Diffstat (limited to 'ares_getnameinfo.c')
-rw-r--r-- | ares_getnameinfo.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/ares_getnameinfo.c b/ares_getnameinfo.c index 38f5599..2c5cf0e 100644 --- a/ares_getnameinfo.c +++ b/ares_getnameinfo.c @@ -99,12 +99,19 @@ void ares_getnameinfo(ares_channel channel, const struct sockaddr *sa, struct sockaddr_in *addr = NULL; struct sockaddr_in6 *addr6 = NULL; struct nameinfo_query *niquery; + unsigned int port = 0; /* Verify the buffer size */ if (salen == sizeof(struct sockaddr_in)) - addr = (struct sockaddr_in *)sa; + { + addr = (struct sockaddr_in *)sa; + port = addr->sin_port; + } else if (salen == sizeof(struct sockaddr_in6)) - addr6 = (struct sockaddr_in6 *)sa; + { + addr6 = (struct sockaddr_in6 *)sa; + port = addr6->sin6_port; + } else { callback(arg, ARES_ENOTIMP, 0, NULL, NULL); @@ -119,12 +126,7 @@ void ares_getnameinfo(ares_channel channel, const struct sockaddr *sa, if ((flags & ARES_NI_LOOKUPSERVICE) && !(flags & ARES_NI_LOOKUPHOST)) { char buf[33], *service; - unsigned int port = 0; - if (salen == sizeof(struct sockaddr_in)) - port = addr->sin_port; - else - port = addr6->sin6_port; service = lookup_service((unsigned short)(port & 0xffff), flags, buf, sizeof(buf)); callback(arg, ARES_SUCCESS, 0, NULL, service); @@ -137,7 +139,6 @@ void ares_getnameinfo(ares_channel channel, const struct sockaddr *sa, /* A numeric host can be handled without DNS */ if ((flags & ARES_NI_NUMERICHOST)) { - unsigned int port = 0; char ipbuf[IPBUFSIZ]; char srvbuf[33]; char *service = NULL; @@ -154,7 +155,6 @@ void ares_getnameinfo(ares_channel channel, const struct sockaddr *sa, if (salen == sizeof(struct sockaddr_in6)) { ares_inet_ntop(AF_INET6, &addr6->sin6_addr, ipbuf, IPBUFSIZ); - port = addr6->sin6_port; /* If the system supports scope IDs, use it */ #ifdef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID append_scopeid(addr6, flags, ipbuf, sizeof(ipbuf)); @@ -163,7 +163,6 @@ void ares_getnameinfo(ares_channel channel, const struct sockaddr *sa, else { ares_inet_ntop(AF_INET, &addr->sin_addr, ipbuf, IPBUFSIZ); - port = addr->sin_port; } /* They also want a service */ if (flags & ARES_NI_LOOKUPSERVICE) |