[BACK]Return to addrmatch.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/addrmatch.c between version 1.14 and 1.15

version 1.14, 2018/07/31 03:07:24 version 1.15, 2020/10/18 11:32:01
Line 377 
Line 377 
         int ret = 0, r;          int ret = 0, r;
   
         if (addr != NULL && addr_pton(addr, &try_addr) != 0) {          if (addr != NULL && addr_pton(addr, &try_addr) != 0) {
                 debug2("%s: couldn't parse address %.100s", __func__, addr);                  debug2_f("couldn't parse address %.100s", addr);
                 return 0;                  return 0;
         }          }
         if ((o = list = strdup(_list)) == NULL)          if ((o = list = strdup(_list)) == NULL)
Line 393 
Line 393 
                 /* Prefer CIDR address matching */                  /* Prefer CIDR address matching */
                 r = addr_pton_cidr(cp, &match_addr, &masklen);                  r = addr_pton_cidr(cp, &match_addr, &masklen);
                 if (r == -2) {                  if (r == -2) {
                         debug2("%s: inconsistent mask length for "                          debug2_f("inconsistent mask length for "
                             "match network \"%.100s\"", __func__, cp);                              "match network \"%.100s\"", cp);
                         ret = -2;                          ret = -2;
                         break;                          break;
                 } else if (r == 0) {                  } else if (r == 0) {
Line 437 
Line 437 
         int ret = 0, r;          int ret = 0, r;
   
         if (addr != NULL && addr_pton(addr, &try_addr) != 0) {          if (addr != NULL && addr_pton(addr, &try_addr) != 0) {
                 debug2("%s: couldn't parse address %.100s", __func__, addr);                  debug2_f("couldn't parse address %.100s", addr);
                 return 0;                  return 0;
         }          }
         if ((o = list = strdup(_list)) == NULL)          if ((o = list = strdup(_list)) == NULL)
                 return -1;                  return -1;
         while ((cp = strsep(&list, ",")) != NULL) {          while ((cp = strsep(&list, ",")) != NULL) {
                 if (*cp == '\0') {                  if (*cp == '\0') {
                         error("%s: empty entry in list \"%.100s\"",                          error_f("empty entry in list \"%.100s\"", o);
                             __func__, o);  
                         ret = -1;                          ret = -1;
                         break;                          break;
                 }                  }
Line 458 
Line 457 
   
                 /* Stop junk from reaching getaddrinfo. +3 is for masklen */                  /* Stop junk from reaching getaddrinfo. +3 is for masklen */
                 if (strlen(cp) > INET6_ADDRSTRLEN + 3) {                  if (strlen(cp) > INET6_ADDRSTRLEN + 3) {
                         error("%s: list entry \"%.100s\" too long",                          error_f("list entry \"%.100s\" too long", cp);
                             __func__, cp);  
                         ret = -1;                          ret = -1;
                         break;                          break;
                 }                  }
 #define VALID_CIDR_CHARS "0123456789abcdefABCDEF.:/"  #define VALID_CIDR_CHARS "0123456789abcdefABCDEF.:/"
                 if (strspn(cp, VALID_CIDR_CHARS) != strlen(cp)) {                  if (strspn(cp, VALID_CIDR_CHARS) != strlen(cp)) {
                         error("%s: list entry \"%.100s\" contains invalid "                          error_f("list entry \"%.100s\" contains invalid "
                             "characters", __func__, cp);                              "characters", cp);
                         ret = -1;                          ret = -1;
                 }                  }
   

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.15