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

Diff for /src/usr.bin/ssh/kex.c between version 1.128 and 1.129

version 1.128, 2017/02/03 23:01:19 version 1.129, 2017/03/10 03:45:40
Line 158 
Line 158 
 char *  char *
 kex_names_cat(const char *a, const char *b)  kex_names_cat(const char *a, const char *b)
 {  {
         char *ret = NULL, *tmp = NULL, *cp, *p;          char *ret = NULL, *tmp = NULL, *cp, *p, *m;
         size_t len;          size_t len;
   
         if (a == NULL || *a == '\0')          if (a == NULL || *a == '\0')
Line 175 
Line 175 
         }          }
         strlcpy(ret, a, len);          strlcpy(ret, a, len);
         for ((p = strsep(&cp, ",")); p && *p != '\0'; (p = strsep(&cp, ","))) {          for ((p = strsep(&cp, ",")); p && *p != '\0'; (p = strsep(&cp, ","))) {
                 if (match_list(ret, p, NULL) != NULL)                  if ((m = match_list(ret, p, NULL)) != NULL) {
                           free(m);
                         continue; /* Algorithm already present */                          continue; /* Algorithm already present */
                   }
                 if (strlcat(ret, ",", len) >= len ||                  if (strlcat(ret, ",", len) >= len ||
                     strlcat(ret, p, len) >= len) {                      strlcat(ret, p, len) >= len) {
                         free(tmp);                          free(tmp);
Line 629 
Line 631 
   
         if (name == NULL)          if (name == NULL)
                 return SSH_ERR_NO_CIPHER_ALG_MATCH;                  return SSH_ERR_NO_CIPHER_ALG_MATCH;
         if ((enc->cipher = cipher_by_name(name)) == NULL)          if ((enc->cipher = cipher_by_name(name)) == NULL) {
                   free(name);
                 return SSH_ERR_INTERNAL_ERROR;                  return SSH_ERR_INTERNAL_ERROR;
           }
         enc->name = name;          enc->name = name;
         enc->enabled = 0;          enc->enabled = 0;
         enc->iv = NULL;          enc->iv = NULL;
Line 648 
Line 652 
   
         if (name == NULL)          if (name == NULL)
                 return SSH_ERR_NO_MAC_ALG_MATCH;                  return SSH_ERR_NO_MAC_ALG_MATCH;
         if (mac_setup(mac, name) < 0)          if (mac_setup(mac, name) < 0) {
                   free(name);
                 return SSH_ERR_INTERNAL_ERROR;                  return SSH_ERR_INTERNAL_ERROR;
           }
         /* truncate the key */          /* truncate the key */
         if (ssh->compat & SSH_BUG_HMAC)          if (ssh->compat & SSH_BUG_HMAC)
                 mac->key_len = 16;                  mac->key_len = 16;
Line 673 
Line 679 
         } else if (strcmp(name, "none") == 0) {          } else if (strcmp(name, "none") == 0) {
                 comp->type = COMP_NONE;                  comp->type = COMP_NONE;
         } else {          } else {
                   free(name);
                 return SSH_ERR_INTERNAL_ERROR;                  return SSH_ERR_INTERNAL_ERROR;
         }          }
         comp->name = name;          comp->name = name;

Legend:
Removed from v.1.128  
changed lines
  Added in v.1.129