marc        97/11/14 07:59:18

  Modified:    src/modules/proxy proxy_util.c
  Log:
  Remove strtoul() use from mod_proxy since it can be done a different
  way and isn't portable.
  
  PR: 1214
  Reviewed by:  Dean Gaudet, Martin Kraemer, Jim Jagielski
  
  Revision  Changes    Path
  1.36      +10 -5     apachen/src/modules/proxy/proxy_util.c
  
  Index: proxy_util.c
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/modules/proxy/proxy_util.c,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- proxy_util.c      1997/11/01 21:13:24     1.35
  +++ proxy_util.c      1997/11/14 15:59:17     1.36
  @@ -867,9 +867,9 @@
   int proxy_is_ipaddr(struct dirconn_entry *This)
   {
       const char *addr = This->name;
  -    unsigned long ip_addr[4];
  +    long ip_addr[4];
       int i, quads;
  -    unsigned long bits;
  +    long bits;
   
       /* if the address is given with an explicit netmask, use that */
       /* Due to a deficiency in ap_inet_addr(), it is impossible to parse */
  @@ -900,11 +900,16 @@
        if (!isdigit(*addr))
            return 0;           /* no digit at start of quad */
   
  -     ip_addr[quads] = strtoul(addr, &tmp, 0);
  +     ip_addr[quads] = strtol(addr, &tmp, 0);
   
        if (tmp == addr)        /* expected a digit, found something else */
            return 0;
   
  +     if (ip_addr[quads] < 0 || ip_addr[quads] > 255) {
  +         /* invalid octet */
  +         return 0;
  +     }
  +
        addr = tmp;
   
        if (*addr == '.' && quads != 3)
  @@ -919,14 +924,14 @@
   
        ++addr;
   
  -     bits = strtoul(addr, &tmp, 0);
  +     bits = strtol(addr, &tmp, 0);
   
        if (tmp == addr)        /* expected a digit, found something else */
            return 0;
   
        addr = tmp;
   
  -     if (bits > 32)          /* netmask must be between 0 and 32 */
  +     if (bits < 0 || bits > 32)      /* netmask must be between 0 and 32 */
            return 0;
   
       }
  
  
  

Reply via email to