Ignore:
Timestamp:
Mar 19, 2017, 11:11:28 AM (10 days ago)
Author:
brainslayer
Message:

latest dnsmasq

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/router/dnsmasq/src/option.c

    r31441 r31703  
    851851{
    852852  struct server *serv = opt_malloc(sizeof(struct server));
    853   in_addr_t  a = ntohl(addr.s_addr) >> 8;
     853  in_addr_t  a = ntohl(addr.s_addr);
    854854  char *p;
    855855
    856856  memset(serv, 0, sizeof(struct server));
    857   p = serv->domain = opt_malloc(25); /* strlen("xxx.yyy.zzz.in-addr.arpa")+1 */
    858  
    859   if (msize == 24)
    860     p += sprintf(p, "%d.", a & 0xff);
    861   a = a >> 8;
    862   if (msize != 8)
    863     p += sprintf(p, "%d.", a & 0xff);
    864   a = a >> 8;
    865   p += sprintf(p, "%d.in-addr.arpa", a & 0xff);
     857  p = serv->domain = opt_malloc(29); /* strlen("xxx.yyy.zzz.ttt.in-addr.arpa")+1 */
     858
     859  switch (msize)
     860    {
     861    case 32:
     862      p += sprintf(p, "%d.", a & 0xff);
     863      /* fall through */
     864    case 24:
     865      p += sprintf(p, "%d.", (a >> 8) & 0xff);
     866      /* fall through */
     867    case 16:
     868      p += sprintf(p, "%d.", (a >> 16) & 0xff);
     869      /* fall through */
     870    case 8:
     871      p += sprintf(p, "%d.", (a >> 24) & 0xff);
     872      break;
     873    default:
     874      return NULL;
     875    }
     876
     877  p += sprintf(p, "in-addr.arpa");
    866878 
    867879  serv->flags = SERV_HAS_DOMAIN;
     
    20682080                                      local=/xxx.yyy.zzz.in-addr.arpa/ */
    20692081                                  struct server *serv = add_rev4(new->start, msize);
     2082                                  if (!serv)
     2083                                    ret_err(_("bad prefix"));
     2084
    20702085                                  serv->flags |= SERV_NO_ADDR;
    20712086
     
    24392454
    24402455        if (inet_pton(AF_INET, arg, &addr4))
    2441           serv = add_rev4(addr4, size);
     2456          {
     2457            serv = add_rev4(addr4, size);
     2458            if (!serv)
     2459              ret_err(_("bad prefix"));
     2460          }
    24422461#ifdef HAVE_IPV6
    24432462        else if (inet_pton(AF_INET6, arg, &addr6))
     
    40904109      int white, i;
    40914110      volatile int option = (hard_opt == LOPT_REV_SERV) ? 0 : hard_opt;
    4092       char *errmess, *p, *arg = NULL, *start;
     4111      char *errmess, *p, *arg, *start;
    40934112      size_t len;
    40944113
     
    41014120        }
    41024121     
     4122      arg = NULL;
    41034123      lineno++;
    41044124      errmess = NULL;
Note: See TracChangeset for help on using the changeset viewer.