summaryrefslogtreecommitdiff
path: root/ares_getnameinfo.c
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2009-09-17 11:45:27 +0000
committerYang Tse <yangsita@gmail.com>2009-09-17 11:45:27 +0000
commit85442b2a4b136e818fa4d34332c93055b35bb7d8 (patch)
treecc23f72fd97d39c5772f34eb12fd3dc74b467af4 /ares_getnameinfo.c
parentada932d94a766e663ca30d686f67008b2546aff1 (diff)
downloadc-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.c19
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)