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

Diff for /src/usr.bin/ssh/sshkey.c between version 1.59 and 1.60

version 1.59, 2017/12/18 02:25:15 version 1.60, 2018/02/07 02:06:51
Line 449 
Line 449 
                 if ((rsa = RSA_new()) == NULL ||                  if ((rsa = RSA_new()) == NULL ||
                     (rsa->n = BN_new()) == NULL ||                      (rsa->n = BN_new()) == NULL ||
                     (rsa->e = BN_new()) == NULL) {                      (rsa->e = BN_new()) == NULL) {
                         if (rsa != NULL)                          RSA_free(rsa);
                                 RSA_free(rsa);  
                         free(k);                          free(k);
                         return NULL;                          return NULL;
                 }                  }
Line 463 
Line 462 
                     (dsa->q = BN_new()) == NULL ||                      (dsa->q = BN_new()) == NULL ||
                     (dsa->g = BN_new()) == NULL ||                      (dsa->g = BN_new()) == NULL ||
                     (dsa->pub_key = BN_new()) == NULL) {                      (dsa->pub_key = BN_new()) == NULL) {
                         if (dsa != NULL)                          DSA_free(dsa);
                                 DSA_free(dsa);  
                         free(k);                          free(k);
                         return NULL;                          return NULL;
                 }                  }
Line 558 
Line 556 
 #ifdef WITH_OPENSSL  #ifdef WITH_OPENSSL
         case KEY_RSA:          case KEY_RSA:
         case KEY_RSA_CERT:          case KEY_RSA_CERT:
                 if (k->rsa != NULL)                  RSA_free(k->rsa);
                         RSA_free(k->rsa);  
                 k->rsa = NULL;                  k->rsa = NULL;
                 break;                  break;
         case KEY_DSA:          case KEY_DSA:
         case KEY_DSA_CERT:          case KEY_DSA_CERT:
                 if (k->dsa != NULL)                  DSA_free(k->dsa);
                         DSA_free(k->dsa);  
                 k->dsa = NULL;                  k->dsa = NULL;
                 break;                  break;
         case KEY_ECDSA:          case KEY_ECDSA:
         case KEY_ECDSA_CERT:          case KEY_ECDSA_CERT:
                 if (k->ecdsa != NULL)                  EC_KEY_free(k->ecdsa);
                         EC_KEY_free(k->ecdsa);  
                 k->ecdsa = NULL;                  k->ecdsa = NULL;
                 break;                  break;
 #endif /* WITH_OPENSSL */  #endif /* WITH_OPENSSL */
Line 1222 
Line 1217 
                 switch (sshkey_type_plain(ret->type)) {                  switch (sshkey_type_plain(ret->type)) {
 #ifdef WITH_OPENSSL  #ifdef WITH_OPENSSL
                 case KEY_RSA:                  case KEY_RSA:
                         if (ret->rsa != NULL)                          RSA_free(ret->rsa);
                                 RSA_free(ret->rsa);  
                         ret->rsa = k->rsa;                          ret->rsa = k->rsa;
                         k->rsa = NULL;                          k->rsa = NULL;
 #ifdef DEBUG_PK  #ifdef DEBUG_PK
Line 1231 
Line 1225 
 #endif  #endif
                         break;                          break;
                 case KEY_DSA:                  case KEY_DSA:
                         if (ret->dsa != NULL)                          DSA_free(ret->dsa);
                                 DSA_free(ret->dsa);  
                         ret->dsa = k->dsa;                          ret->dsa = k->dsa;
                         k->dsa = NULL;                          k->dsa = NULL;
 #ifdef DEBUG_PK  #ifdef DEBUG_PK
Line 1240 
Line 1233 
 #endif  #endif
                         break;                          break;
                 case KEY_ECDSA:                  case KEY_ECDSA:
                         if (ret->ecdsa != NULL)                          EC_KEY_free(ret->ecdsa);
                                 EC_KEY_free(ret->ecdsa);  
                         ret->ecdsa = k->ecdsa;                          ret->ecdsa = k->ecdsa;
                         ret->ecdsa_nid = k->ecdsa_nid;                          ret->ecdsa_nid = k->ecdsa_nid;
                         k->ecdsa = NULL;                          k->ecdsa = NULL;
Line 1382 
Line 1374 
         private = NULL;          private = NULL;
         ret = 0;          ret = 0;
  out:   out:
         if (private != NULL)          RSA_free(private);
                 RSA_free(private);          BN_free(f4);
         if (f4 != NULL)  
                 BN_free(f4);  
         return ret;          return ret;
 }  }
   
Line 1413 
Line 1403 
         private = NULL;          private = NULL;
         ret = 0;          ret = 0;
  out:   out:
         if (private != NULL)          DSA_free(private);
                 DSA_free(private);  
         return ret;          return ret;
 }  }
   
Line 1490 
Line 1479 
         private = NULL;          private = NULL;
         ret = 0;          ret = 0;
  out:   out:
         if (private != NULL)          EC_KEY_free(private);
                 EC_KEY_free(private);  
         return ret;          return ret;
 }  }
 #endif /* WITH_OPENSSL */  #endif /* WITH_OPENSSL */
Line 1896 
Line 1884 
                         ret = SSH_ERR_EC_CURVE_MISMATCH;                          ret = SSH_ERR_EC_CURVE_MISMATCH;
                         goto out;                          goto out;
                 }                  }
                 if (key->ecdsa != NULL)                  EC_KEY_free(key->ecdsa);
                         EC_KEY_free(key->ecdsa);  
                 if ((key->ecdsa = EC_KEY_new_by_curve_name(key->ecdsa_nid))                  if ((key->ecdsa = EC_KEY_new_by_curve_name(key->ecdsa_nid))
                     == NULL) {                      == NULL) {
                         ret = SSH_ERR_EC_CURVE_INVALID;                          ret = SSH_ERR_EC_CURVE_INVALID;
Line 1973 
Line 1960 
         free(curve);          free(curve);
         free(pk);          free(pk);
 #ifdef WITH_OPENSSL  #ifdef WITH_OPENSSL
         if (q != NULL)          EC_POINT_free(q);
                 EC_POINT_free(q);  
 #endif /* WITH_OPENSSL */  #endif /* WITH_OPENSSL */
         return ret;          return ret;
 }  }
Line 2715 
Line 2701 
         free(tname);          free(tname);
         free(curve);          free(curve);
 #ifdef WITH_OPENSSL  #ifdef WITH_OPENSSL
         if (exponent != NULL)          BN_clear_free(exponent);
                 BN_clear_free(exponent);  
 #endif /* WITH_OPENSSL */  #endif /* WITH_OPENSSL */
         sshkey_free(k);          sshkey_free(k);
         if (ed25519_pk != NULL) {          if (ed25519_pk != NULL) {
Line 2804 
Line 2789 
         ret = 0;          ret = 0;
  out:   out:
         BN_CTX_free(bnctx);          BN_CTX_free(bnctx);
         if (nq != NULL)          EC_POINT_free(nq);
                 EC_POINT_free(nq);  
         return ret;          return ret;
 }  }
   
Line 3496 
Line 3480 
         }          }
  out:   out:
         BIO_free(bio);          BIO_free(bio);
         if (pk != NULL)          EVP_PKEY_free(pk);
                 EVP_PKEY_free(pk);  
         sshkey_free(prv);          sshkey_free(prv);
         return r;          return r;
 }  }

Legend:
Removed from v.1.59  
changed lines
  Added in v.1.60