Commit 31e106ce authored by Yang Tse's avatar Yang Tse
Browse files

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

parent 250ba994
Loading
Loading
Loading
Loading
+9 −10
Original line number Diff line number Diff line
@@ -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;
      port = addr->sin_port;
    }
  else if (salen == sizeof(struct sockaddr_in6))
    {
      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)
+6 −3
Original line number Diff line number Diff line
@@ -975,6 +975,9 @@ static int init_by_defaults(ares_channel channel)
{
  char *hostname = NULL;
  int rc = ARES_SUCCESS;
#ifdef HAVE_GETHOSTNAME
  char *dot;
#endif

  if (channel->flags == -1)
    channel->flags = 0;
@@ -1044,15 +1047,15 @@ static int init_by_defaults(ares_channel channel)

    } while(0);

    if (strchr(hostname, '.'))  {
    dot = strchr(hostname, '.');
    if (dot) {
      /* a dot was found */

      channel->domains = malloc(sizeof(char *));
      if (!channel->domains) {
        rc = ARES_ENOMEM;
        goto error;
      }
      channel->domains[0] = strdup(strchr(hostname, '.') + 1);
      channel->domains[0] = strdup(dot + 1);
      if (!channel->domains[0]) {
        rc = ARES_ENOMEM;
        goto error;
+5 −3
Original line number Diff line number Diff line
@@ -3946,10 +3946,12 @@ static CURLcode parse_remote_port(struct SessionHandle *data,

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

+1 −0
Original line number Diff line number Diff line
@@ -584,6 +584,7 @@ static int get_request(curl_socket_t sock, struct httprequest *req)
  /*** end of httprequest init ***/

  while (req->offset < REQBUFSIZ-1) {
    if(pipereq_length && pipereq) {
    if(pipereq_length) {
      memmove(reqbuf, pipereq, pipereq_length);
      got = pipereq_length;