Attempt to silence bogus compiler warning: "Potential null pointer dereference"

This commit is contained in:
Yang Tse 2009-09-17 11:45:27 +00:00
parent 250ba99498
commit 31e106ced2
4 changed files with 21 additions and 16 deletions

View File

@ -99,12 +99,19 @@ void ares_getnameinfo(ares_channel channel, const struct sockaddr *sa,
struct sockaddr_in *addr = NULL; struct sockaddr_in *addr = NULL;
struct sockaddr_in6 *addr6 = NULL; struct sockaddr_in6 *addr6 = NULL;
struct nameinfo_query *niquery; struct nameinfo_query *niquery;
unsigned int port = 0;
/* Verify the buffer size */ /* Verify the buffer size */
if (salen == sizeof(struct sockaddr_in)) 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)) else if (salen == sizeof(struct sockaddr_in6))
addr6 = (struct sockaddr_in6 *)sa; {
addr6 = (struct sockaddr_in6 *)sa;
port = addr6->sin6_port;
}
else else
{ {
callback(arg, ARES_ENOTIMP, 0, NULL, NULL); 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)) if ((flags & ARES_NI_LOOKUPSERVICE) && !(flags & ARES_NI_LOOKUPHOST))
{ {
char buf[33], *service; 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), service = lookup_service((unsigned short)(port & 0xffff),
flags, buf, sizeof(buf)); flags, buf, sizeof(buf));
callback(arg, ARES_SUCCESS, 0, NULL, service); 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 */ /* A numeric host can be handled without DNS */
if ((flags & ARES_NI_NUMERICHOST)) if ((flags & ARES_NI_NUMERICHOST))
{ {
unsigned int port = 0;
char ipbuf[IPBUFSIZ]; char ipbuf[IPBUFSIZ];
char srvbuf[33]; char srvbuf[33];
char *service = NULL; char *service = NULL;
@ -154,7 +155,6 @@ void ares_getnameinfo(ares_channel channel, const struct sockaddr *sa,
if (salen == sizeof(struct sockaddr_in6)) if (salen == sizeof(struct sockaddr_in6))
{ {
ares_inet_ntop(AF_INET6, &addr6->sin6_addr, ipbuf, IPBUFSIZ); ares_inet_ntop(AF_INET6, &addr6->sin6_addr, ipbuf, IPBUFSIZ);
port = addr6->sin6_port;
/* If the system supports scope IDs, use it */ /* If the system supports scope IDs, use it */
#ifdef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID #ifdef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
append_scopeid(addr6, flags, ipbuf, sizeof(ipbuf)); append_scopeid(addr6, flags, ipbuf, sizeof(ipbuf));
@ -163,7 +163,6 @@ void ares_getnameinfo(ares_channel channel, const struct sockaddr *sa,
else else
{ {
ares_inet_ntop(AF_INET, &addr->sin_addr, ipbuf, IPBUFSIZ); ares_inet_ntop(AF_INET, &addr->sin_addr, ipbuf, IPBUFSIZ);
port = addr->sin_port;
} }
/* They also want a service */ /* They also want a service */
if (flags & ARES_NI_LOOKUPSERVICE) if (flags & ARES_NI_LOOKUPSERVICE)

View File

@ -975,6 +975,9 @@ static int init_by_defaults(ares_channel channel)
{ {
char *hostname = NULL; char *hostname = NULL;
int rc = ARES_SUCCESS; int rc = ARES_SUCCESS;
#ifdef HAVE_GETHOSTNAME
char *dot;
#endif
if (channel->flags == -1) if (channel->flags == -1)
channel->flags = 0; channel->flags = 0;
@ -1044,15 +1047,15 @@ static int init_by_defaults(ares_channel channel)
} while(0); } while(0);
if (strchr(hostname, '.')) { dot = strchr(hostname, '.');
if (dot) {
/* a dot was found */ /* a dot was found */
channel->domains = malloc(sizeof(char *)); channel->domains = malloc(sizeof(char *));
if (!channel->domains) { if (!channel->domains) {
rc = ARES_ENOMEM; rc = ARES_ENOMEM;
goto error; goto error;
} }
channel->domains[0] = strdup(strchr(hostname, '.') + 1); channel->domains[0] = strdup(dot + 1);
if (!channel->domains[0]) { if (!channel->domains[0]) {
rc = ARES_ENOMEM; rc = ARES_ENOMEM;
goto error; goto error;

View File

@ -3946,9 +3946,11 @@ static CURLcode parse_remote_port(struct SessionHandle *data,
conn->host.name++; /* skip over the starting bracket */ conn->host.name++; /* skip over the starting bracket */
portptr = strchr(conn->host.name, ']'); portptr = strchr(conn->host.name, ']');
*portptr++ = 0; /* zero terminate, killing the bracket */ if(portptr) {
if(':' != *portptr) *portptr++ = '\0'; /* zero terminate, killing the bracket */
portptr = NULL; /* no port number available */ if(':' != *portptr)
portptr = NULL; /* no port number available */
}
} }
else else
portptr = strrchr(conn->host.name, ':'); portptr = strrchr(conn->host.name, ':');

View File

@ -584,6 +584,7 @@ static int get_request(curl_socket_t sock, struct httprequest *req)
/*** end of httprequest init ***/ /*** end of httprequest init ***/
while (req->offset < REQBUFSIZ-1) { while (req->offset < REQBUFSIZ-1) {
if(pipereq_length && pipereq) {
if(pipereq_length) { if(pipereq_length) {
memmove(reqbuf, pipereq, pipereq_length); memmove(reqbuf, pipereq, pipereq_length);
got = pipereq_length; got = pipereq_length;