diff options
Diffstat (limited to '')
62 files changed, 311 insertions, 535 deletions
diff --git a/src/lib/libcrypto/asn1/a_object.c b/src/lib/libcrypto/asn1/a_object.c index 551aece6ad..863aa6a226 100644 --- a/src/lib/libcrypto/asn1/a_object.c +++ b/src/lib/libcrypto/asn1/a_object.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: a_object.c,v 1.21 2014/07/11 08:44:47 jsing Exp $ */ | 1 | /* $OpenBSD: a_object.c,v 1.22 2014/07/12 16:03:36 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -206,15 +206,13 @@ a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num) | |||
| 206 | } | 206 | } |
| 207 | if (tmp != ftmp) | 207 | if (tmp != ftmp) |
| 208 | free(tmp); | 208 | free(tmp); |
| 209 | if (bl) | 209 | BN_free(bl); |
| 210 | BN_free(bl); | ||
| 211 | return (len); | 210 | return (len); |
| 212 | 211 | ||
| 213 | err: | 212 | err: |
| 214 | if (tmp != ftmp) | 213 | if (tmp != ftmp) |
| 215 | free(tmp); | 214 | free(tmp); |
| 216 | if (bl) | 215 | BN_free(bl); |
| 217 | BN_free(bl); | ||
| 218 | return (0); | 216 | return (0); |
| 219 | } | 217 | } |
| 220 | 218 | ||
diff --git a/src/lib/libcrypto/asn1/asn1_par.c b/src/lib/libcrypto/asn1/asn1_par.c index c6f95c42ab..f5e3a8b529 100644 --- a/src/lib/libcrypto/asn1/asn1_par.c +++ b/src/lib/libcrypto/asn1/asn1_par.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: asn1_par.c,v 1.19 2014/07/11 08:44:47 jsing Exp $ */ | 1 | /* $OpenBSD: asn1_par.c,v 1.20 2014/07/12 16:03:36 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -291,10 +291,8 @@ asn1_parse2(BIO *bp, const unsigned char **pp, long length, int offset, | |||
| 291 | nl = 1; | 291 | nl = 1; |
| 292 | } | 292 | } |
| 293 | } | 293 | } |
| 294 | if (os != NULL) { | 294 | M_ASN1_OCTET_STRING_free(os); |
| 295 | M_ASN1_OCTET_STRING_free(os); | 295 | os = NULL; |
| 296 | os = NULL; | ||
| 297 | } | ||
| 298 | } else if (tag == V_ASN1_INTEGER) { | 296 | } else if (tag == V_ASN1_INTEGER) { |
| 299 | ASN1_INTEGER *bs; | 297 | ASN1_INTEGER *bs; |
| 300 | int i; | 298 | int i; |
| @@ -376,8 +374,7 @@ asn1_parse2(BIO *bp, const unsigned char **pp, long length, int offset, | |||
| 376 | end: | 374 | end: |
| 377 | if (o != NULL) | 375 | if (o != NULL) |
| 378 | ASN1_OBJECT_free(o); | 376 | ASN1_OBJECT_free(o); |
| 379 | if (os != NULL) | 377 | M_ASN1_OCTET_STRING_free(os); |
| 380 | M_ASN1_OCTET_STRING_free(os); | ||
| 381 | *pp = p; | 378 | *pp = p; |
| 382 | return (ret); | 379 | return (ret); |
| 383 | } | 380 | } |
diff --git a/src/lib/libcrypto/asn1/evp_asn1.c b/src/lib/libcrypto/asn1/evp_asn1.c index 199c12f9a4..5e21f3c8ae 100644 --- a/src/lib/libcrypto/asn1/evp_asn1.c +++ b/src/lib/libcrypto/asn1/evp_asn1.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: evp_asn1.c,v 1.12 2014/07/11 13:41:59 miod Exp $ */ | 1 | /* $OpenBSD: evp_asn1.c,v 1.13 2014/07/12 16:03:36 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -193,9 +193,7 @@ err: | |||
| 193 | ASN1err(ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING, | 193 | ASN1err(ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING, |
| 194 | ASN1_R_DATA_IS_WRONG); | 194 | ASN1_R_DATA_IS_WRONG); |
| 195 | } | 195 | } |
| 196 | if (os != NULL) | 196 | M_ASN1_OCTET_STRING_free(os); |
| 197 | M_ASN1_OCTET_STRING_free(os); | 197 | M_ASN1_INTEGER_free(ai); |
| 198 | if (ai != NULL) | ||
| 199 | M_ASN1_INTEGER_free(ai); | ||
| 200 | return (ret); | 198 | return (ret); |
| 201 | } | 199 | } |
diff --git a/src/lib/libcrypto/asn1/x_pkey.c b/src/lib/libcrypto/asn1/x_pkey.c index a5134bc6a2..d454afb72b 100644 --- a/src/lib/libcrypto/asn1/x_pkey.c +++ b/src/lib/libcrypto/asn1/x_pkey.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: x_pkey.c,v 1.14 2014/07/11 08:44:47 jsing Exp $ */ | 1 | /* $OpenBSD: x_pkey.c,v 1.15 2014/07/12 16:03:36 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -149,10 +149,8 @@ X509_PKEY_free(X509_PKEY *x) | |||
| 149 | 149 | ||
| 150 | if (x->enc_algor != NULL) | 150 | if (x->enc_algor != NULL) |
| 151 | X509_ALGOR_free(x->enc_algor); | 151 | X509_ALGOR_free(x->enc_algor); |
| 152 | if (x->enc_pkey != NULL) | 152 | M_ASN1_OCTET_STRING_free(x->enc_pkey); |
| 153 | M_ASN1_OCTET_STRING_free(x->enc_pkey); | 153 | EVP_PKEY_free(x->dec_pkey); |
| 154 | if (x->dec_pkey != NULL) | ||
| 155 | EVP_PKEY_free(x->dec_pkey); | ||
| 156 | if ((x->key_data != NULL) && (x->key_free)) | 154 | if ((x->key_data != NULL) && (x->key_free)) |
| 157 | free(x->key_data); | 155 | free(x->key_data); |
| 158 | free(x); | 156 | free(x); |
diff --git a/src/lib/libcrypto/asn1/x_pubkey.c b/src/lib/libcrypto/asn1/x_pubkey.c index 87cb25bb50..56cc63059a 100644 --- a/src/lib/libcrypto/asn1/x_pubkey.c +++ b/src/lib/libcrypto/asn1/x_pubkey.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: x_pubkey.c,v 1.21 2014/07/11 08:44:47 jsing Exp $ */ | 1 | /* $OpenBSD: x_pubkey.c,v 1.22 2014/07/12 16:03:36 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -183,8 +183,7 @@ X509_PUBKEY_get(X509_PUBKEY *key) | |||
| 183 | return ret; | 183 | return ret; |
| 184 | 184 | ||
| 185 | error: | 185 | error: |
| 186 | if (ret != NULL) | 186 | EVP_PKEY_free(ret); |
| 187 | EVP_PKEY_free(ret); | ||
| 188 | return (NULL); | 187 | return (NULL); |
| 189 | } | 188 | } |
| 190 | 189 | ||
diff --git a/src/lib/libcrypto/bn/bn_blind.c b/src/lib/libcrypto/bn/bn_blind.c index 5f559da067..c842f76c6f 100644 --- a/src/lib/libcrypto/bn/bn_blind.c +++ b/src/lib/libcrypto/bn/bn_blind.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: bn_blind.c,v 1.13 2014/07/11 08:44:47 jsing Exp $ */ | 1 | /* $OpenBSD: bn_blind.c,v 1.14 2014/07/12 16:03:36 miod Exp $ */ |
| 2 | /* ==================================================================== | 2 | /* ==================================================================== |
| 3 | * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. |
| 4 | * | 4 | * |
| @@ -181,14 +181,10 @@ BN_BLINDING_free(BN_BLINDING *r) | |||
| 181 | if (r == NULL) | 181 | if (r == NULL) |
| 182 | return; | 182 | return; |
| 183 | 183 | ||
| 184 | if (r->A != NULL) | 184 | BN_clear_free(r->A); |
| 185 | BN_clear_free(r->A ); | 185 | BN_clear_free(r->Ai); |
| 186 | if (r->Ai != NULL) | 186 | BN_clear_free(r->e); |
| 187 | BN_clear_free(r->Ai); | 187 | BN_clear_free(r->mod); |
| 188 | if (r->e != NULL) | ||
| 189 | BN_clear_free(r->e ); | ||
| 190 | if (r->mod != NULL) | ||
| 191 | BN_clear_free(r->mod); | ||
| 192 | free(r); | 188 | free(r); |
| 193 | } | 189 | } |
| 194 | 190 | ||
| @@ -341,8 +337,7 @@ BN_BLINDING_create_param(BN_BLINDING *b, const BIGNUM *e, BIGNUM *m, | |||
| 341 | goto err; | 337 | goto err; |
| 342 | 338 | ||
| 343 | if (e != NULL) { | 339 | if (e != NULL) { |
| 344 | if (ret->e != NULL) | 340 | BN_free(ret->e); |
| 345 | BN_free(ret->e); | ||
| 346 | ret->e = BN_dup(e); | 341 | ret->e = BN_dup(e); |
| 347 | } | 342 | } |
| 348 | if (ret->e == NULL) | 343 | if (ret->e == NULL) |
diff --git a/src/lib/libcrypto/bn/bn_lib.c b/src/lib/libcrypto/bn/bn_lib.c index 4ee9b2bbde..d0cb49cd1e 100644 --- a/src/lib/libcrypto/bn/bn_lib.c +++ b/src/lib/libcrypto/bn/bn_lib.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: bn_lib.c,v 1.32 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: bn_lib.c,v 1.33 2014/07/12 16:03:36 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -585,8 +585,7 @@ BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret) | |||
| 585 | i = ((n - 1) / BN_BYTES) + 1; | 585 | i = ((n - 1) / BN_BYTES) + 1; |
| 586 | m = ((n - 1) % (BN_BYTES)); | 586 | m = ((n - 1) % (BN_BYTES)); |
| 587 | if (bn_wexpand(ret, (int)i) == NULL) { | 587 | if (bn_wexpand(ret, (int)i) == NULL) { |
| 588 | if (bn) | 588 | BN_free(bn); |
| 589 | BN_free(bn); | ||
| 590 | return NULL; | 589 | return NULL; |
| 591 | } | 590 | } |
| 592 | ret->top = i; | 591 | ret->top = i; |
diff --git a/src/lib/libcrypto/bn/bn_mod.c b/src/lib/libcrypto/bn/bn_mod.c index a503ff3b1b..67bd3541b0 100644 --- a/src/lib/libcrypto/bn/bn_mod.c +++ b/src/lib/libcrypto/bn/bn_mod.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: bn_mod.c,v 1.8 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: bn_mod.c,v 1.9 2014/07/12 16:03:36 miod Exp $ */ |
| 2 | /* Includes code written by Lenka Fibikova <fibikova@exp-math.uni-essen.de> | 2 | /* Includes code written by Lenka Fibikova <fibikova@exp-math.uni-essen.de> |
| 3 | * for the OpenSSL project. */ | 3 | * for the OpenSSL project. */ |
| 4 | /* ==================================================================== | 4 | /* ==================================================================== |
| @@ -253,8 +253,7 @@ BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m, BN_CTX *ctx) | |||
| 253 | ret = BN_mod_lshift_quick(r, r, n, (abs_m ? abs_m : m)); | 253 | ret = BN_mod_lshift_quick(r, r, n, (abs_m ? abs_m : m)); |
| 254 | bn_check_top(r); | 254 | bn_check_top(r); |
| 255 | 255 | ||
| 256 | if (abs_m) | 256 | BN_free(abs_m); |
| 257 | BN_free(abs_m); | ||
| 258 | return ret; | 257 | return ret; |
| 259 | } | 258 | } |
| 260 | 259 | ||
diff --git a/src/lib/libcrypto/bn/bn_prime.c b/src/lib/libcrypto/bn/bn_prime.c index db786a63ef..27468ceb93 100644 --- a/src/lib/libcrypto/bn/bn_prime.c +++ b/src/lib/libcrypto/bn/bn_prime.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: bn_prime.c,v 1.10 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: bn_prime.c,v 1.11 2014/07/12 16:03:36 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -344,8 +344,7 @@ err: | |||
| 344 | if (ctx_passed == NULL) | 344 | if (ctx_passed == NULL) |
| 345 | BN_CTX_free(ctx); | 345 | BN_CTX_free(ctx); |
| 346 | } | 346 | } |
| 347 | if (mont != NULL) | 347 | BN_MONT_CTX_free(mont); |
| 348 | BN_MONT_CTX_free(mont); | ||
| 349 | 348 | ||
| 350 | return (ret); | 349 | return (ret); |
| 351 | } | 350 | } |
diff --git a/src/lib/libcrypto/bn/bn_print.c b/src/lib/libcrypto/bn/bn_print.c index ccdae5ae09..4920705a5b 100644 --- a/src/lib/libcrypto/bn/bn_print.c +++ b/src/lib/libcrypto/bn/bn_print.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: bn_print.c,v 1.22 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: bn_print.c,v 1.23 2014/07/12 16:03:36 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -163,8 +163,7 @@ BN_bn2dec(const BIGNUM *a) | |||
| 163 | 163 | ||
| 164 | err: | 164 | err: |
| 165 | free(bn_data); | 165 | free(bn_data); |
| 166 | if (t != NULL) | 166 | BN_free(t); |
| 167 | BN_free(t); | ||
| 168 | if (!ok && buf) { | 167 | if (!ok && buf) { |
| 169 | free(buf); | 168 | free(buf); |
| 170 | buf = NULL; | 169 | buf = NULL; |
diff --git a/src/lib/libcrypto/cmac/cm_ameth.c b/src/lib/libcrypto/cmac/cm_ameth.c index 39d8ad3aa8..e7e7fe0f80 100644 --- a/src/lib/libcrypto/cmac/cm_ameth.c +++ b/src/lib/libcrypto/cmac/cm_ameth.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: cm_ameth.c,v 1.6 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: cm_ameth.c,v 1.7 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project 2010. | 3 | * project 2010. |
| 4 | */ | 4 | */ |
| @@ -74,8 +74,7 @@ cmac_key_free(EVP_PKEY *pkey) | |||
| 74 | { | 74 | { |
| 75 | CMAC_CTX *cmctx = (CMAC_CTX *)pkey->pkey.ptr; | 75 | CMAC_CTX *cmctx = (CMAC_CTX *)pkey->pkey.ptr; |
| 76 | 76 | ||
| 77 | if (cmctx) | 77 | CMAC_CTX_free(cmctx); |
| 78 | CMAC_CTX_free(cmctx); | ||
| 79 | } | 78 | } |
| 80 | 79 | ||
| 81 | const EVP_PKEY_ASN1_METHOD cmac_asn1_meth = { | 80 | const EVP_PKEY_ASN1_METHOD cmac_asn1_meth = { |
diff --git a/src/lib/libcrypto/cms/cms_asn1.c b/src/lib/libcrypto/cms/cms_asn1.c index a75fa26137..fbdac5b1ba 100644 --- a/src/lib/libcrypto/cms/cms_asn1.c +++ b/src/lib/libcrypto/cms/cms_asn1.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: cms_asn1.c,v 1.4 2014/06/12 15:49:28 deraadt Exp $ */ | 1 | /* $OpenBSD: cms_asn1.c,v 1.5 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project. | 3 | * project. |
| 4 | */ | 4 | */ |
| @@ -91,8 +91,7 @@ cms_si_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg) | |||
| 91 | { | 91 | { |
| 92 | if (operation == ASN1_OP_FREE_POST) { | 92 | if (operation == ASN1_OP_FREE_POST) { |
| 93 | CMS_SignerInfo *si = (CMS_SignerInfo *)*pval; | 93 | CMS_SignerInfo *si = (CMS_SignerInfo *)*pval; |
| 94 | if (si->pkey) | 94 | EVP_PKEY_free(si->pkey); |
| 95 | EVP_PKEY_free(si->pkey); | ||
| 96 | if (si->signer) | 95 | if (si->signer) |
| 97 | X509_free(si->signer); | 96 | X509_free(si->signer); |
| 98 | } | 97 | } |
| @@ -219,8 +218,7 @@ cms_ri_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg) | |||
| 219 | CMS_RecipientInfo *ri = (CMS_RecipientInfo *)*pval; | 218 | CMS_RecipientInfo *ri = (CMS_RecipientInfo *)*pval; |
| 220 | if (ri->type == CMS_RECIPINFO_TRANS) { | 219 | if (ri->type == CMS_RECIPINFO_TRANS) { |
| 221 | CMS_KeyTransRecipientInfo *ktri = ri->d.ktri; | 220 | CMS_KeyTransRecipientInfo *ktri = ri->d.ktri; |
| 222 | if (ktri->pkey) | 221 | EVP_PKEY_free(ktri->pkey); |
| 223 | EVP_PKEY_free(ktri->pkey); | ||
| 224 | if (ktri->recip) | 222 | if (ktri->recip) |
| 225 | X509_free(ktri->recip); | 223 | X509_free(ktri->recip); |
| 226 | } else if (ri->type == CMS_RECIPINFO_KEK) { | 224 | } else if (ri->type == CMS_RECIPINFO_KEK) { |
diff --git a/src/lib/libcrypto/cms/cms_env.c b/src/lib/libcrypto/cms/cms_env.c index 66ec1a9343..19c86b9550 100644 --- a/src/lib/libcrypto/cms/cms_env.c +++ b/src/lib/libcrypto/cms/cms_env.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: cms_env.c,v 1.6 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: cms_env.c,v 1.7 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project. | 3 | * project. |
| 4 | */ | 4 | */ |
| @@ -346,8 +346,7 @@ cms_RecipientInfo_ktri_encrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri) | |||
| 346 | ret = 1; | 346 | ret = 1; |
| 347 | 347 | ||
| 348 | err: | 348 | err: |
| 349 | if (pctx) | 349 | EVP_PKEY_CTX_free(pctx); |
| 350 | EVP_PKEY_CTX_free(pctx); | ||
| 351 | free(ek); | 350 | free(ek); |
| 352 | return ret; | 351 | return ret; |
| 353 | } | 352 | } |
| @@ -416,8 +415,7 @@ cms_RecipientInfo_ktri_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri) | |||
| 416 | ec->keylen = eklen; | 415 | ec->keylen = eklen; |
| 417 | 416 | ||
| 418 | err: | 417 | err: |
| 419 | if (pctx) | 418 | EVP_PKEY_CTX_free(pctx); |
| 420 | EVP_PKEY_CTX_free(pctx); | ||
| 421 | if (!ret && ek) | 419 | if (!ret && ek) |
| 422 | free(ek); | 420 | free(ek); |
| 423 | 421 | ||
diff --git a/src/lib/libcrypto/cms/cms_sd.c b/src/lib/libcrypto/cms/cms_sd.c index 7e490c0988..70ad897bda 100644 --- a/src/lib/libcrypto/cms/cms_sd.c +++ b/src/lib/libcrypto/cms/cms_sd.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: cms_sd.c,v 1.7 2014/07/11 13:02:10 miod Exp $ */ | 1 | /* $OpenBSD: cms_sd.c,v 1.8 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project. | 3 | * project. |
| 4 | */ | 4 | */ |
| @@ -495,8 +495,7 @@ CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer) | |||
| 495 | { | 495 | { |
| 496 | if (signer) { | 496 | if (signer) { |
| 497 | CRYPTO_add(&signer->references, 1, CRYPTO_LOCK_X509); | 497 | CRYPTO_add(&signer->references, 1, CRYPTO_LOCK_X509); |
| 498 | if (si->pkey) | 498 | EVP_PKEY_free(si->pkey); |
| 499 | EVP_PKEY_free(si->pkey); | ||
| 500 | si->pkey = X509_get_pubkey(signer); | 499 | si->pkey = X509_get_pubkey(signer); |
| 501 | } | 500 | } |
| 502 | if (si->signer) | 501 | if (si->signer) |
diff --git a/src/lib/libcrypto/dh/dh_ameth.c b/src/lib/libcrypto/dh/dh_ameth.c index 91178a92b0..729c996a1b 100644 --- a/src/lib/libcrypto/dh/dh_ameth.c +++ b/src/lib/libcrypto/dh/dh_ameth.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: dh_ameth.c,v 1.11 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: dh_ameth.c,v 1.12 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project 2006. | 3 | * project 2006. |
| 4 | */ | 4 | */ |
| @@ -120,8 +120,7 @@ dh_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey) | |||
| 120 | err: | 120 | err: |
| 121 | if (public_key) | 121 | if (public_key) |
| 122 | ASN1_INTEGER_free(public_key); | 122 | ASN1_INTEGER_free(public_key); |
| 123 | if (dh) | 123 | DH_free(dh); |
| 124 | DH_free(dh); | ||
| 125 | return 0; | 124 | return 0; |
| 126 | } | 125 | } |
| 127 | 126 | ||
| @@ -409,14 +408,12 @@ dh_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from) | |||
| 409 | 408 | ||
| 410 | if ((a = BN_dup(from->pkey.dh->p)) == NULL) | 409 | if ((a = BN_dup(from->pkey.dh->p)) == NULL) |
| 411 | return 0; | 410 | return 0; |
| 412 | if (to->pkey.dh->p != NULL) | 411 | BN_free(to->pkey.dh->p); |
| 413 | BN_free(to->pkey.dh->p); | ||
| 414 | to->pkey.dh->p = a; | 412 | to->pkey.dh->p = a; |
| 415 | 413 | ||
| 416 | if ((a = BN_dup(from->pkey.dh->g)) == NULL) | 414 | if ((a = BN_dup(from->pkey.dh->g)) == NULL) |
| 417 | return 0; | 415 | return 0; |
| 418 | if (to->pkey.dh->g != NULL) | 416 | BN_free(to->pkey.dh->g); |
| 419 | BN_free(to->pkey.dh->g); | ||
| 420 | to->pkey.dh->g = a; | 417 | to->pkey.dh->g = a; |
| 421 | 418 | ||
| 422 | return 1; | 419 | return 1; |
diff --git a/src/lib/libcrypto/dh/dh_check.c b/src/lib/libcrypto/dh/dh_check.c index 01b9531a44..0f6c50b055 100644 --- a/src/lib/libcrypto/dh/dh_check.c +++ b/src/lib/libcrypto/dh/dh_check.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: dh_check.c,v 1.13 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: dh_check.c,v 1.14 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -114,10 +114,8 @@ DH_check(const DH *dh, int *ret) | |||
| 114 | } | 114 | } |
| 115 | ok = 1; | 115 | ok = 1; |
| 116 | err: | 116 | err: |
| 117 | if (ctx != NULL) | 117 | BN_CTX_free(ctx); |
| 118 | BN_CTX_free(ctx); | 118 | BN_free(q); |
| 119 | if (q != NULL) | ||
| 120 | BN_free(q); | ||
| 121 | return ok; | 119 | return ok; |
| 122 | } | 120 | } |
| 123 | 121 | ||
diff --git a/src/lib/libcrypto/dh/dh_key.c b/src/lib/libcrypto/dh/dh_key.c index 6d90816122..132ba5cfa4 100644 --- a/src/lib/libcrypto/dh/dh_key.c +++ b/src/lib/libcrypto/dh/dh_key.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: dh_key.c,v 1.20 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: dh_key.c,v 1.21 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -260,7 +260,6 @@ dh_init(DH *dh) | |||
| 260 | static int | 260 | static int |
| 261 | dh_finish(DH *dh) | 261 | dh_finish(DH *dh) |
| 262 | { | 262 | { |
| 263 | if (dh->method_mont_p) | 263 | BN_MONT_CTX_free(dh->method_mont_p); |
| 264 | BN_MONT_CTX_free(dh->method_mont_p); | ||
| 265 | return 1; | 264 | return 1; |
| 266 | } | 265 | } |
diff --git a/src/lib/libcrypto/dh/dh_lib.c b/src/lib/libcrypto/dh/dh_lib.c index 0a956e5416..c438f387c0 100644 --- a/src/lib/libcrypto/dh/dh_lib.c +++ b/src/lib/libcrypto/dh/dh_lib.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: dh_lib.c,v 1.19 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: dh_lib.c,v 1.20 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -194,21 +194,14 @@ DH_free(DH *r) | |||
| 194 | 194 | ||
| 195 | CRYPTO_free_ex_data(CRYPTO_EX_INDEX_DH, r, &r->ex_data); | 195 | CRYPTO_free_ex_data(CRYPTO_EX_INDEX_DH, r, &r->ex_data); |
| 196 | 196 | ||
| 197 | if (r->p != NULL) | 197 | BN_clear_free(r->p); |
| 198 | BN_clear_free(r->p); | 198 | BN_clear_free(r->g); |
| 199 | if (r->g != NULL) | 199 | BN_clear_free(r->q); |
| 200 | BN_clear_free(r->g); | 200 | BN_clear_free(r->j); |
| 201 | if (r->q != NULL) | ||
| 202 | BN_clear_free(r->q); | ||
| 203 | if (r->j != NULL) | ||
| 204 | BN_clear_free(r->j); | ||
| 205 | free(r->seed); | 201 | free(r->seed); |
| 206 | if (r->counter != NULL) | 202 | BN_clear_free(r->counter); |
| 207 | BN_clear_free(r->counter); | 203 | BN_clear_free(r->pub_key); |
| 208 | if (r->pub_key != NULL) | 204 | BN_clear_free(r->priv_key); |
| 209 | BN_clear_free(r->pub_key); | ||
| 210 | if (r->priv_key != NULL) | ||
| 211 | BN_clear_free(r->priv_key); | ||
| 212 | free(r); | 205 | free(r); |
| 213 | } | 206 | } |
| 214 | 207 | ||
diff --git a/src/lib/libcrypto/dsa/dsa.h b/src/lib/libcrypto/dsa/dsa.h index c1264ac325..bd7b26070d 100644 --- a/src/lib/libcrypto/dsa/dsa.h +++ b/src/lib/libcrypto/dsa/dsa.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: dsa.h,v 1.17 2014/06/12 15:49:28 deraadt Exp $ */ | 1 | /* $OpenBSD: dsa.h,v 1.18 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -206,7 +206,7 @@ int DSA_set_method(DSA *dsa, const DSA_METHOD *); | |||
| 206 | 206 | ||
| 207 | DSA * DSA_new(void); | 207 | DSA * DSA_new(void); |
| 208 | DSA * DSA_new_method(ENGINE *engine); | 208 | DSA * DSA_new_method(ENGINE *engine); |
| 209 | void DSA_free (DSA *r); | 209 | void DSA_free(DSA *r); |
| 210 | /* "up" the DSA object's reference count */ | 210 | /* "up" the DSA object's reference count */ |
| 211 | int DSA_up_ref(DSA *r); | 211 | int DSA_up_ref(DSA *r); |
| 212 | int DSA_size(const DSA *); | 212 | int DSA_size(const DSA *); |
diff --git a/src/lib/libcrypto/dsa/dsa_ameth.c b/src/lib/libcrypto/dsa/dsa_ameth.c index 73c58ec94c..7da4ac5695 100644 --- a/src/lib/libcrypto/dsa/dsa_ameth.c +++ b/src/lib/libcrypto/dsa/dsa_ameth.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: dsa_ameth.c,v 1.12 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: dsa_ameth.c,v 1.13 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project 2006. | 3 | * project 2006. |
| 4 | */ | 4 | */ |
| @@ -125,8 +125,7 @@ dsa_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey) | |||
| 125 | err: | 125 | err: |
| 126 | if (public_key) | 126 | if (public_key) |
| 127 | ASN1_INTEGER_free(public_key); | 127 | ASN1_INTEGER_free(public_key); |
| 128 | if (dsa) | 128 | DSA_free(dsa); |
| 129 | DSA_free(dsa); | ||
| 130 | return 0; | 129 | return 0; |
| 131 | } | 130 | } |
| 132 | 131 | ||
| @@ -264,7 +263,7 @@ dsa_priv_decode(EVP_PKEY *pkey, PKCS8_PRIV_KEY_INFO *p8) | |||
| 264 | } | 263 | } |
| 265 | 264 | ||
| 266 | EVP_PKEY_assign_DSA(pkey, dsa); | 265 | EVP_PKEY_assign_DSA(pkey, dsa); |
| 267 | BN_CTX_free (ctx); | 266 | BN_CTX_free(ctx); |
| 268 | if (ndsa) | 267 | if (ndsa) |
| 269 | sk_ASN1_TYPE_pop_free(ndsa, ASN1_TYPE_free); | 268 | sk_ASN1_TYPE_pop_free(ndsa, ASN1_TYPE_free); |
| 270 | else | 269 | else |
| @@ -275,7 +274,7 @@ dsa_priv_decode(EVP_PKEY *pkey, PKCS8_PRIV_KEY_INFO *p8) | |||
| 275 | decerr: | 274 | decerr: |
| 276 | DSAerr(DSA_F_DSA_PRIV_DECODE, EVP_R_DECODE_ERROR); | 275 | DSAerr(DSA_F_DSA_PRIV_DECODE, EVP_R_DECODE_ERROR); |
| 277 | dsaerr: | 276 | dsaerr: |
| 278 | BN_CTX_free (ctx); | 277 | BN_CTX_free(ctx); |
| 279 | if (privkey) | 278 | if (privkey) |
| 280 | ASN1_INTEGER_free(privkey); | 279 | ASN1_INTEGER_free(privkey); |
| 281 | sk_ASN1_TYPE_pop_free(ndsa, ASN1_TYPE_free); | 280 | sk_ASN1_TYPE_pop_free(ndsa, ASN1_TYPE_free); |
| @@ -358,20 +357,17 @@ dsa_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from) | |||
| 358 | 357 | ||
| 359 | if ((a = BN_dup(from->pkey.dsa->p)) == NULL) | 358 | if ((a = BN_dup(from->pkey.dsa->p)) == NULL) |
| 360 | return 0; | 359 | return 0; |
| 361 | if (to->pkey.dsa->p != NULL) | 360 | BN_free(to->pkey.dsa->p); |
| 362 | BN_free(to->pkey.dsa->p); | ||
| 363 | to->pkey.dsa->p = a; | 361 | to->pkey.dsa->p = a; |
| 364 | 362 | ||
| 365 | if ((a = BN_dup(from->pkey.dsa->q)) == NULL) | 363 | if ((a = BN_dup(from->pkey.dsa->q)) == NULL) |
| 366 | return 0; | 364 | return 0; |
| 367 | if (to->pkey.dsa->q != NULL) | 365 | BN_free(to->pkey.dsa->q); |
| 368 | BN_free(to->pkey.dsa->q); | ||
| 369 | to->pkey.dsa->q = a; | 366 | to->pkey.dsa->q = a; |
| 370 | 367 | ||
| 371 | if ((a = BN_dup(from->pkey.dsa->g)) == NULL) | 368 | if ((a = BN_dup(from->pkey.dsa->g)) == NULL) |
| 372 | return 0; | 369 | return 0; |
| 373 | if (to->pkey.dsa->g != NULL) | 370 | BN_free(to->pkey.dsa->g); |
| 374 | BN_free(to->pkey.dsa->g); | ||
| 375 | to->pkey.dsa->g = a; | 371 | to->pkey.dsa->g = a; |
| 376 | return 1; | 372 | return 1; |
| 377 | } | 373 | } |
diff --git a/src/lib/libcrypto/dsa/dsa_gen.c b/src/lib/libcrypto/dsa/dsa_gen.c index d41e7562e1..a3d07b901a 100644 --- a/src/lib/libcrypto/dsa/dsa_gen.c +++ b/src/lib/libcrypto/dsa/dsa_gen.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: dsa_gen.c,v 1.15 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: dsa_gen.c,v 1.16 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -322,12 +322,9 @@ end: | |||
| 322 | ok = 1; | 322 | ok = 1; |
| 323 | err: | 323 | err: |
| 324 | if (ok) { | 324 | if (ok) { |
| 325 | if (ret->p) | 325 | BN_free(ret->p); |
| 326 | BN_free(ret->p); | 326 | BN_free(ret->q); |
| 327 | if (ret->q) | 327 | BN_free(ret->g); |
| 328 | BN_free(ret->q); | ||
| 329 | if (ret->g) | ||
| 330 | BN_free(ret->g); | ||
| 331 | ret->p = BN_dup(p); | 328 | ret->p = BN_dup(p); |
| 332 | ret->q = BN_dup(q); | 329 | ret->q = BN_dup(q); |
| 333 | ret->g = BN_dup(g); | 330 | ret->g = BN_dup(g); |
| @@ -346,8 +343,7 @@ err: | |||
| 346 | BN_CTX_end(ctx); | 343 | BN_CTX_end(ctx); |
| 347 | BN_CTX_free(ctx); | 344 | BN_CTX_free(ctx); |
| 348 | } | 345 | } |
| 349 | if (mont != NULL) | 346 | BN_MONT_CTX_free(mont); |
| 350 | BN_MONT_CTX_free(mont); | ||
| 351 | return ok; | 347 | return ok; |
| 352 | } | 348 | } |
| 353 | #endif | 349 | #endif |
diff --git a/src/lib/libcrypto/dsa/dsa_key.c b/src/lib/libcrypto/dsa/dsa_key.c index 4573ecbcce..4dc28dbb90 100644 --- a/src/lib/libcrypto/dsa/dsa_key.c +++ b/src/lib/libcrypto/dsa/dsa_key.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: dsa_key.c,v 1.18 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: dsa_key.c,v 1.19 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -128,8 +128,7 @@ err: | |||
| 128 | BN_free(pub_key); | 128 | BN_free(pub_key); |
| 129 | if (priv_key != NULL && dsa->priv_key == NULL) | 129 | if (priv_key != NULL && dsa->priv_key == NULL) |
| 130 | BN_free(priv_key); | 130 | BN_free(priv_key); |
| 131 | if (ctx != NULL) | 131 | BN_CTX_free(ctx); |
| 132 | BN_CTX_free(ctx); | ||
| 133 | return ok; | 132 | return ok; |
| 134 | } | 133 | } |
| 135 | #endif | 134 | #endif |
diff --git a/src/lib/libcrypto/dsa/dsa_lib.c b/src/lib/libcrypto/dsa/dsa_lib.c index 97307134cd..1cfd6ce6b8 100644 --- a/src/lib/libcrypto/dsa/dsa_lib.c +++ b/src/lib/libcrypto/dsa/dsa_lib.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: dsa_lib.c,v 1.20 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: dsa_lib.c,v 1.21 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -201,20 +201,13 @@ DSA_free(DSA *r) | |||
| 201 | 201 | ||
| 202 | CRYPTO_free_ex_data(CRYPTO_EX_INDEX_DSA, r, &r->ex_data); | 202 | CRYPTO_free_ex_data(CRYPTO_EX_INDEX_DSA, r, &r->ex_data); |
| 203 | 203 | ||
| 204 | if (r->p != NULL) | 204 | BN_clear_free(r->p); |
| 205 | BN_clear_free(r->p); | 205 | BN_clear_free(r->q); |
| 206 | if (r->q != NULL) | 206 | BN_clear_free(r->g); |
| 207 | BN_clear_free(r->q); | 207 | BN_clear_free(r->pub_key); |
| 208 | if (r->g != NULL) | 208 | BN_clear_free(r->priv_key); |
| 209 | BN_clear_free(r->g); | 209 | BN_clear_free(r->kinv); |
| 210 | if (r->pub_key != NULL) | 210 | BN_clear_free(r->r); |
| 211 | BN_clear_free(r->pub_key); | ||
| 212 | if (r->priv_key != NULL) | ||
| 213 | BN_clear_free(r->priv_key); | ||
| 214 | if (r->kinv != NULL) | ||
| 215 | BN_clear_free(r->kinv); | ||
| 216 | if (r->r != NULL) | ||
| 217 | BN_clear_free(r->r); | ||
| 218 | free(r); | 211 | free(r); |
| 219 | } | 212 | } |
| 220 | 213 | ||
| @@ -305,8 +298,7 @@ DSA_dup_DH(const DSA *r) | |||
| 305 | return ret; | 298 | return ret; |
| 306 | 299 | ||
| 307 | err: | 300 | err: |
| 308 | if (ret != NULL) | 301 | DH_free(ret); |
| 309 | DH_free(ret); | ||
| 310 | return NULL; | 302 | return NULL; |
| 311 | } | 303 | } |
| 312 | #endif | 304 | #endif |
diff --git a/src/lib/libcrypto/dsa/dsa_ossl.c b/src/lib/libcrypto/dsa/dsa_ossl.c index 5bff836c50..e372853063 100644 --- a/src/lib/libcrypto/dsa/dsa_ossl.c +++ b/src/lib/libcrypto/dsa/dsa_ossl.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: dsa_ossl.c,v 1.20 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: dsa_ossl.c,v 1.21 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -212,12 +212,10 @@ err: | |||
| 212 | BN_free(r); | 212 | BN_free(r); |
| 213 | BN_free(s); | 213 | BN_free(s); |
| 214 | } | 214 | } |
| 215 | if (ctx != NULL) | 215 | BN_CTX_free(ctx); |
| 216 | BN_CTX_free(ctx); | ||
| 217 | BN_clear_free(&m); | 216 | BN_clear_free(&m); |
| 218 | BN_clear_free(&xr); | 217 | BN_clear_free(&xr); |
| 219 | if (kinv != NULL) /* dsa->kinv is NULL now if we used it */ | 218 | BN_clear_free(kinv); |
| 220 | BN_clear_free(kinv); | ||
| 221 | return ret; | 219 | return ret; |
| 222 | } | 220 | } |
| 223 | 221 | ||
| @@ -295,19 +293,16 @@ dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp) | |||
| 295 | if ((kinv = BN_mod_inverse(NULL, &k, dsa->q, ctx)) == NULL) | 293 | if ((kinv = BN_mod_inverse(NULL, &k, dsa->q, ctx)) == NULL) |
| 296 | goto err; | 294 | goto err; |
| 297 | 295 | ||
| 298 | if (*kinvp != NULL) | 296 | BN_clear_free(*kinvp); |
| 299 | BN_clear_free(*kinvp); | ||
| 300 | *kinvp = kinv; | 297 | *kinvp = kinv; |
| 301 | kinv = NULL; | 298 | kinv = NULL; |
| 302 | if (*rp != NULL) | 299 | BN_clear_free(*rp); |
| 303 | BN_clear_free(*rp); | ||
| 304 | *rp = r; | 300 | *rp = r; |
| 305 | ret = 1; | 301 | ret = 1; |
| 306 | err: | 302 | err: |
| 307 | if (!ret) { | 303 | if (!ret) { |
| 308 | DSAerr(DSA_F_DSA_SIGN_SETUP, ERR_R_BN_LIB); | 304 | DSAerr(DSA_F_DSA_SIGN_SETUP, ERR_R_BN_LIB); |
| 309 | if (r != NULL) | 305 | BN_clear_free(r); |
| 310 | BN_clear_free(r); | ||
| 311 | } | 306 | } |
| 312 | if (ctx_in == NULL) | 307 | if (ctx_in == NULL) |
| 313 | BN_CTX_free(ctx); | 308 | BN_CTX_free(ctx); |
| @@ -406,8 +401,7 @@ err: | |||
| 406 | there is no error in BN. Test should be ret == -1 (Ben) */ | 401 | there is no error in BN. Test should be ret == -1 (Ben) */ |
| 407 | if (ret != 1) | 402 | if (ret != 1) |
| 408 | DSAerr(DSA_F_DSA_DO_VERIFY, ERR_R_BN_LIB); | 403 | DSAerr(DSA_F_DSA_DO_VERIFY, ERR_R_BN_LIB); |
| 409 | if (ctx != NULL) | 404 | BN_CTX_free(ctx); |
| 410 | BN_CTX_free(ctx); | ||
| 411 | BN_free(&u1); | 405 | BN_free(&u1); |
| 412 | BN_free(&u2); | 406 | BN_free(&u2); |
| 413 | BN_free(&t1); | 407 | BN_free(&t1); |
| @@ -424,8 +418,7 @@ dsa_init(DSA *dsa) | |||
| 424 | static int | 418 | static int |
| 425 | dsa_finish(DSA *dsa) | 419 | dsa_finish(DSA *dsa) |
| 426 | { | 420 | { |
| 427 | if (dsa->method_mont_p) | 421 | BN_MONT_CTX_free(dsa->method_mont_p); |
| 428 | BN_MONT_CTX_free(dsa->method_mont_p); | ||
| 429 | return 1; | 422 | return 1; |
| 430 | } | 423 | } |
| 431 | 424 | ||
diff --git a/src/lib/libcrypto/dsa/dsa_sign.c b/src/lib/libcrypto/dsa/dsa_sign.c index efeb35477c..80e002c4a7 100644 --- a/src/lib/libcrypto/dsa/dsa_sign.c +++ b/src/lib/libcrypto/dsa/dsa_sign.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: dsa_sign.c,v 1.17 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: dsa_sign.c,v 1.18 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -91,10 +91,8 @@ void | |||
| 91 | DSA_SIG_free(DSA_SIG *sig) | 91 | DSA_SIG_free(DSA_SIG *sig) |
| 92 | { | 92 | { |
| 93 | if (sig) { | 93 | if (sig) { |
| 94 | if (sig->r) | 94 | BN_free(sig->r); |
| 95 | BN_free(sig->r); | 95 | BN_free(sig->s); |
| 96 | if (sig->s) | ||
| 97 | BN_free(sig->s); | ||
| 98 | free(sig); | 96 | free(sig); |
| 99 | } | 97 | } |
| 100 | } | 98 | } |
diff --git a/src/lib/libcrypto/ec/ec2_mult.c b/src/lib/libcrypto/ec/ec2_mult.c index 6c3a759dc8..c74571f88c 100644 --- a/src/lib/libcrypto/ec/ec2_mult.c +++ b/src/lib/libcrypto/ec/ec2_mult.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec2_mult.c,v 1.4 2014/07/10 22:45:56 jsing Exp $ */ | 1 | /* $OpenBSD: ec2_mult.c,v 1.5 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* ==================================================================== | 2 | /* ==================================================================== |
| 3 | * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. | 3 | * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. |
| 4 | * | 4 | * |
| @@ -421,12 +421,9 @@ ec_GF2m_simple_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar, | |||
| 421 | ret = 1; | 421 | ret = 1; |
| 422 | 422 | ||
| 423 | err: | 423 | err: |
| 424 | if (p) | 424 | EC_POINT_free(p); |
| 425 | EC_POINT_free(p); | 425 | EC_POINT_free(acc); |
| 426 | if (acc) | 426 | BN_CTX_free(new_ctx); |
| 427 | EC_POINT_free(acc); | ||
| 428 | if (new_ctx != NULL) | ||
| 429 | BN_CTX_free(new_ctx); | ||
| 430 | return ret; | 427 | return ret; |
| 431 | } | 428 | } |
| 432 | 429 | ||
diff --git a/src/lib/libcrypto/ec/ec2_oct.c b/src/lib/libcrypto/ec/ec2_oct.c index 5150423b99..3b8039af6e 100644 --- a/src/lib/libcrypto/ec/ec2_oct.c +++ b/src/lib/libcrypto/ec/ec2_oct.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec2_oct.c,v 1.4 2014/07/10 22:45:56 jsing Exp $ */ | 1 | /* $OpenBSD: ec2_oct.c,v 1.5 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* ==================================================================== | 2 | /* ==================================================================== |
| 3 | * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. | 3 | * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. |
| 4 | * | 4 | * |
| @@ -157,8 +157,7 @@ ec_GF2m_simple_set_compressed_coordinates(const EC_GROUP *group, EC_POINT *point | |||
| 157 | 157 | ||
| 158 | err: | 158 | err: |
| 159 | BN_CTX_end(ctx); | 159 | BN_CTX_end(ctx); |
| 160 | if (new_ctx != NULL) | 160 | BN_CTX_free(new_ctx); |
| 161 | BN_CTX_free(new_ctx); | ||
| 162 | return ret; | 161 | return ret; |
| 163 | } | 162 | } |
| 164 | 163 | ||
| @@ -267,15 +266,13 @@ ec_GF2m_simple_point2oct(const EC_GROUP *group, const EC_POINT *point, | |||
| 267 | } | 266 | } |
| 268 | if (used_ctx) | 267 | if (used_ctx) |
| 269 | BN_CTX_end(ctx); | 268 | BN_CTX_end(ctx); |
| 270 | if (new_ctx != NULL) | 269 | BN_CTX_free(new_ctx); |
| 271 | BN_CTX_free(new_ctx); | ||
| 272 | return ret; | 270 | return ret; |
| 273 | 271 | ||
| 274 | err: | 272 | err: |
| 275 | if (used_ctx) | 273 | if (used_ctx) |
| 276 | BN_CTX_end(ctx); | 274 | BN_CTX_end(ctx); |
| 277 | if (new_ctx != NULL) | 275 | BN_CTX_free(new_ctx); |
| 278 | BN_CTX_free(new_ctx); | ||
| 279 | return 0; | 276 | return 0; |
| 280 | } | 277 | } |
| 281 | 278 | ||
| @@ -375,8 +372,7 @@ ec_GF2m_simple_oct2point(const EC_GROUP *group, EC_POINT *point, | |||
| 375 | 372 | ||
| 376 | err: | 373 | err: |
| 377 | BN_CTX_end(ctx); | 374 | BN_CTX_end(ctx); |
| 378 | if (new_ctx != NULL) | 375 | BN_CTX_free(new_ctx); |
| 379 | BN_CTX_free(new_ctx); | ||
| 380 | return ret; | 376 | return ret; |
| 381 | } | 377 | } |
| 382 | #endif | 378 | #endif |
diff --git a/src/lib/libcrypto/ec/ec2_smpl.c b/src/lib/libcrypto/ec/ec2_smpl.c index 001ffcc077..0031a161c7 100644 --- a/src/lib/libcrypto/ec/ec2_smpl.c +++ b/src/lib/libcrypto/ec/ec2_smpl.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec2_smpl.c,v 1.11 2014/07/10 22:45:56 jsing Exp $ */ | 1 | /* $OpenBSD: ec2_smpl.c,v 1.12 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* ==================================================================== | 2 | /* ==================================================================== |
| 3 | * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. | 3 | * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. |
| 4 | * | 4 | * |
| @@ -310,8 +310,7 @@ ec_GF2m_simple_group_check_discriminant(const EC_GROUP * group, BN_CTX * ctx) | |||
| 310 | err: | 310 | err: |
| 311 | if (ctx != NULL) | 311 | if (ctx != NULL) |
| 312 | BN_CTX_end(ctx); | 312 | BN_CTX_end(ctx); |
| 313 | if (new_ctx != NULL) | 313 | BN_CTX_free(new_ctx); |
| 314 | BN_CTX_free(new_ctx); | ||
| 315 | return ret; | 314 | return ret; |
| 316 | } | 315 | } |
| 317 | 316 | ||
| @@ -547,8 +546,7 @@ ec_GF2m_simple_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, | |||
| 547 | 546 | ||
| 548 | err: | 547 | err: |
| 549 | BN_CTX_end(ctx); | 548 | BN_CTX_end(ctx); |
| 550 | if (new_ctx != NULL) | 549 | BN_CTX_free(new_ctx); |
| 551 | BN_CTX_free(new_ctx); | ||
| 552 | return ret; | 550 | return ret; |
| 553 | } | 551 | } |
| 554 | 552 | ||
| @@ -641,8 +639,7 @@ ec_GF2m_simple_is_on_curve(const EC_GROUP *group, const EC_POINT *point, BN_CTX | |||
| 641 | err: | 639 | err: |
| 642 | if (ctx) | 640 | if (ctx) |
| 643 | BN_CTX_end(ctx); | 641 | BN_CTX_end(ctx); |
| 644 | if (new_ctx) | 642 | BN_CTX_free(new_ctx); |
| 645 | BN_CTX_free(new_ctx); | ||
| 646 | return ret; | 643 | return ret; |
| 647 | } | 644 | } |
| 648 | 645 | ||
| @@ -691,8 +688,7 @@ ec_GF2m_simple_cmp(const EC_GROUP * group, const EC_POINT * a, const EC_POINT * | |||
| 691 | err: | 688 | err: |
| 692 | if (ctx) | 689 | if (ctx) |
| 693 | BN_CTX_end(ctx); | 690 | BN_CTX_end(ctx); |
| 694 | if (new_ctx) | 691 | BN_CTX_free(new_ctx); |
| 695 | BN_CTX_free(new_ctx); | ||
| 696 | return ret; | 692 | return ret; |
| 697 | } | 693 | } |
| 698 | 694 | ||
| @@ -733,8 +729,7 @@ ec_GF2m_simple_make_affine(const EC_GROUP * group, EC_POINT * point, BN_CTX * ct | |||
| 733 | err: | 729 | err: |
| 734 | if (ctx) | 730 | if (ctx) |
| 735 | BN_CTX_end(ctx); | 731 | BN_CTX_end(ctx); |
| 736 | if (new_ctx) | 732 | BN_CTX_free(new_ctx); |
| 737 | BN_CTX_free(new_ctx); | ||
| 738 | return ret; | 733 | return ret; |
| 739 | } | 734 | } |
| 740 | 735 | ||
diff --git a/src/lib/libcrypto/ec/ec_ameth.c b/src/lib/libcrypto/ec/ec_ameth.c index 93e305b71a..c201815621 100644 --- a/src/lib/libcrypto/ec/ec_ameth.c +++ b/src/lib/libcrypto/ec/ec_ameth.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec_ameth.c,v 1.11 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: ec_ameth.c,v 1.12 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project 2006. | 3 | * project 2006. |
| 4 | */ | 4 | */ |
| @@ -492,12 +492,9 @@ do_EC_KEY_print(BIO * bp, const EC_KEY * x, int off, int ktype) | |||
| 492 | err: | 492 | err: |
| 493 | if (!ret) | 493 | if (!ret) |
| 494 | ECerr(EC_F_DO_EC_KEY_PRINT, reason); | 494 | ECerr(EC_F_DO_EC_KEY_PRINT, reason); |
| 495 | if (pub_key) | 495 | BN_free(pub_key); |
| 496 | BN_free(pub_key); | 496 | BN_free(order); |
| 497 | if (order) | 497 | BN_CTX_free(ctx); |
| 498 | BN_free(order); | ||
| 499 | if (ctx) | ||
| 500 | BN_CTX_free(ctx); | ||
| 501 | free(buffer); | 498 | free(buffer); |
| 502 | return (ret); | 499 | return (ret); |
| 503 | } | 500 | } |
diff --git a/src/lib/libcrypto/ec/ec_asn1.c b/src/lib/libcrypto/ec/ec_asn1.c index ef87b599f2..c54f6593d5 100644 --- a/src/lib/libcrypto/ec/ec_asn1.c +++ b/src/lib/libcrypto/ec/ec_asn1.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec_asn1.c,v 1.9 2014/07/10 22:45:57 jsing Exp $ */ | 1 | /* $OpenBSD: ec_asn1.c,v 1.10 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Written by Nils Larsch for the OpenSSL project. | 3 | * Written by Nils Larsch for the OpenSSL project. |
| 4 | */ | 4 | */ |
| @@ -404,8 +404,8 @@ ec_asn1_group2fieldid(const EC_GROUP * group, X9_62_FIELDID * field) | |||
| 404 | 404 | ||
| 405 | ok = 1; | 405 | ok = 1; |
| 406 | 406 | ||
| 407 | err: if (tmp) | 407 | err: |
| 408 | BN_free(tmp); | 408 | BN_free(tmp); |
| 409 | return (ok); | 409 | return (ok); |
| 410 | } | 410 | } |
| 411 | 411 | ||
| @@ -509,12 +509,11 @@ ec_asn1_group2curve(const EC_GROUP * group, X9_62_CURVE * curve) | |||
| 509 | 509 | ||
| 510 | ok = 1; | 510 | ok = 1; |
| 511 | 511 | ||
| 512 | err: free(buffer_1); | 512 | err: |
| 513 | free(buffer_1); | ||
| 513 | free(buffer_2); | 514 | free(buffer_2); |
| 514 | if (tmp_1) | 515 | BN_free(tmp_1); |
| 515 | BN_free(tmp_1); | 516 | BN_free(tmp_2); |
| 516 | if (tmp_2) | ||
| 517 | BN_free(tmp_2); | ||
| 518 | return (ok); | 517 | return (ok); |
| 519 | } | 518 | } |
| 520 | 519 | ||
| @@ -608,8 +607,7 @@ err: if (!ok) { | |||
| 608 | ECPARAMETERS_free(ret); | 607 | ECPARAMETERS_free(ret); |
| 609 | ret = NULL; | 608 | ret = NULL; |
| 610 | } | 609 | } |
| 611 | if (tmp) | 610 | BN_free(tmp); |
| 612 | BN_free(tmp); | ||
| 613 | free(buffer); | 611 | free(buffer); |
| 614 | return (ret); | 612 | return (ret); |
| 615 | } | 613 | } |
| @@ -849,10 +847,8 @@ ec_asn1_parameters2group(const ECPARAMETERS * params) | |||
| 849 | } | 847 | } |
| 850 | /* extract the cofactor (optional) */ | 848 | /* extract the cofactor (optional) */ |
| 851 | if (params->cofactor == NULL) { | 849 | if (params->cofactor == NULL) { |
| 852 | if (b) { | 850 | BN_free(b); |
| 853 | BN_free(b); | 851 | b = NULL; |
| 854 | b = NULL; | ||
| 855 | } | ||
| 856 | } else if ((b = ASN1_INTEGER_to_BN(params->cofactor, b)) == NULL) { | 852 | } else if ((b = ASN1_INTEGER_to_BN(params->cofactor, b)) == NULL) { |
| 857 | ECerr(EC_F_EC_ASN1_PARAMETERS2GROUP, ERR_R_ASN1_LIB); | 853 | ECerr(EC_F_EC_ASN1_PARAMETERS2GROUP, ERR_R_ASN1_LIB); |
| 858 | goto err; | 854 | goto err; |
| @@ -865,18 +861,13 @@ ec_asn1_parameters2group(const ECPARAMETERS * params) | |||
| 865 | ok = 1; | 861 | ok = 1; |
| 866 | 862 | ||
| 867 | err: if (!ok) { | 863 | err: if (!ok) { |
| 868 | if (ret) | 864 | EC_GROUP_clear_free(ret); |
| 869 | EC_GROUP_clear_free(ret); | ||
| 870 | ret = NULL; | 865 | ret = NULL; |
| 871 | } | 866 | } |
| 872 | if (p) | 867 | BN_free(p); |
| 873 | BN_free(p); | 868 | BN_free(a); |
| 874 | if (a) | 869 | BN_free(b); |
| 875 | BN_free(a); | 870 | EC_POINT_free(point); |
| 876 | if (b) | ||
| 877 | BN_free(b); | ||
| 878 | if (point) | ||
| 879 | EC_POINT_free(point); | ||
| 880 | return (ret); | 871 | return (ret); |
| 881 | } | 872 | } |
| 882 | 873 | ||
| @@ -992,8 +983,7 @@ d2i_ECPrivateKey(EC_KEY ** a, const unsigned char **in, long len) | |||
| 992 | ret = *a; | 983 | ret = *a; |
| 993 | 984 | ||
| 994 | if (priv_key->parameters) { | 985 | if (priv_key->parameters) { |
| 995 | if (ret->group) | 986 | EC_GROUP_clear_free(ret->group); |
| 996 | EC_GROUP_clear_free(ret->group); | ||
| 997 | ret->group = ec_asn1_pkparameters2group(priv_key->parameters); | 987 | ret->group = ec_asn1_pkparameters2group(priv_key->parameters); |
| 998 | } | 988 | } |
| 999 | if (ret->group == NULL) { | 989 | if (ret->group == NULL) { |
| @@ -1022,8 +1012,7 @@ d2i_ECPrivateKey(EC_KEY ** a, const unsigned char **in, long len) | |||
| 1022 | const unsigned char *pub_oct; | 1012 | const unsigned char *pub_oct; |
| 1023 | size_t pub_oct_len; | 1013 | size_t pub_oct_len; |
| 1024 | 1014 | ||
| 1025 | if (ret->pub_key) | 1015 | EC_POINT_clear_free(ret->pub_key); |
| 1026 | EC_POINT_clear_free(ret->pub_key); | ||
| 1027 | ret->pub_key = EC_POINT_new(ret->group); | 1016 | ret->pub_key = EC_POINT_new(ret->group); |
| 1028 | if (ret->pub_key == NULL) { | 1017 | if (ret->pub_key == NULL) { |
| 1029 | ECerr(EC_F_D2I_ECPRIVATEKEY, ERR_R_EC_LIB); | 1018 | ECerr(EC_F_D2I_ECPRIVATEKEY, ERR_R_EC_LIB); |
diff --git a/src/lib/libcrypto/ec/ec_check.c b/src/lib/libcrypto/ec/ec_check.c index 585590514f..779e03cc2b 100644 --- a/src/lib/libcrypto/ec/ec_check.c +++ b/src/lib/libcrypto/ec/ec_check.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec_check.c,v 1.3 2014/06/12 15:49:29 deraadt Exp $ */ | 1 | /* $OpenBSD: ec_check.c,v 1.4 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* ==================================================================== | 2 | /* ==================================================================== |
| 3 | * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. |
| 4 | * | 4 | * |
| @@ -109,9 +109,7 @@ EC_GROUP_check(const EC_GROUP * group, BN_CTX * ctx) | |||
| 109 | err: | 109 | err: |
| 110 | if (ctx != NULL) | 110 | if (ctx != NULL) |
| 111 | BN_CTX_end(ctx); | 111 | BN_CTX_end(ctx); |
| 112 | if (new_ctx != NULL) | 112 | BN_CTX_free(new_ctx); |
| 113 | BN_CTX_free(new_ctx); | 113 | EC_POINT_free(point); |
| 114 | if (point) | ||
| 115 | EC_POINT_free(point); | ||
| 116 | return ret; | 114 | return ret; |
| 117 | } | 115 | } |
diff --git a/src/lib/libcrypto/ec/ec_curve.c b/src/lib/libcrypto/ec/ec_curve.c index baac8c7156..9d36d0bf22 100644 --- a/src/lib/libcrypto/ec/ec_curve.c +++ b/src/lib/libcrypto/ec/ec_curve.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec_curve.c,v 1.6 2014/07/10 22:45:57 jsing Exp $ */ | 1 | /* $OpenBSD: ec_curve.c,v 1.7 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Written by Nils Larsch for the OpenSSL project. | 3 | * Written by Nils Larsch for the OpenSSL project. |
| 4 | */ | 4 | */ |
| @@ -2981,22 +2981,14 @@ err: | |||
| 2981 | EC_GROUP_free(group); | 2981 | EC_GROUP_free(group); |
| 2982 | group = NULL; | 2982 | group = NULL; |
| 2983 | } | 2983 | } |
| 2984 | if (P) | 2984 | EC_POINT_free(P); |
| 2985 | EC_POINT_free(P); | 2985 | BN_CTX_free(ctx); |
| 2986 | if (ctx) | 2986 | BN_free(p); |
| 2987 | BN_CTX_free(ctx); | 2987 | BN_free(a); |
| 2988 | if (p) | 2988 | BN_free(b); |
| 2989 | BN_free(p); | 2989 | BN_free(order); |
| 2990 | if (a) | 2990 | BN_free(x); |
| 2991 | BN_free(a); | 2991 | BN_free(y); |
| 2992 | if (b) | ||
| 2993 | BN_free(b); | ||
| 2994 | if (order) | ||
| 2995 | BN_free(order); | ||
| 2996 | if (x) | ||
| 2997 | BN_free(x); | ||
| 2998 | if (y) | ||
| 2999 | BN_free(y); | ||
| 3000 | return group; | 2992 | return group; |
| 3001 | } | 2993 | } |
| 3002 | 2994 | ||
diff --git a/src/lib/libcrypto/ec/ec_key.c b/src/lib/libcrypto/ec/ec_key.c index 7067a949da..1154c4dbf5 100644 --- a/src/lib/libcrypto/ec/ec_key.c +++ b/src/lib/libcrypto/ec/ec_key.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec_key.c,v 1.8 2014/07/10 22:45:57 jsing Exp $ */ | 1 | /* $OpenBSD: ec_key.c,v 1.9 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Written by Nils Larsch for the OpenSSL project. | 3 | * Written by Nils Larsch for the OpenSSL project. |
| 4 | */ | 4 | */ |
| @@ -116,12 +116,9 @@ EC_KEY_free(EC_KEY * r) | |||
| 116 | if (i > 0) | 116 | if (i > 0) |
| 117 | return; | 117 | return; |
| 118 | 118 | ||
| 119 | if (r->group != NULL) | 119 | EC_GROUP_free(r->group); |
| 120 | EC_GROUP_free(r->group); | 120 | EC_POINT_free(r->pub_key); |
| 121 | if (r->pub_key != NULL) | 121 | BN_clear_free(r->priv_key); |
| 122 | EC_POINT_free(r->pub_key); | ||
| 123 | if (r->priv_key != NULL) | ||
| 124 | BN_clear_free(r->priv_key); | ||
| 125 | 122 | ||
| 126 | EC_EX_DATA_free_all_data(&r->method_data); | 123 | EC_EX_DATA_free_all_data(&r->method_data); |
| 127 | 124 | ||
| @@ -143,8 +140,7 @@ EC_KEY_copy(EC_KEY * dest, const EC_KEY * src) | |||
| 143 | if (src->group) { | 140 | if (src->group) { |
| 144 | const EC_METHOD *meth = EC_GROUP_method_of(src->group); | 141 | const EC_METHOD *meth = EC_GROUP_method_of(src->group); |
| 145 | /* clear the old group */ | 142 | /* clear the old group */ |
| 146 | if (dest->group) | 143 | EC_GROUP_free(dest->group); |
| 147 | EC_GROUP_free(dest->group); | ||
| 148 | dest->group = EC_GROUP_new(meth); | 144 | dest->group = EC_GROUP_new(meth); |
| 149 | if (dest->group == NULL) | 145 | if (dest->group == NULL) |
| 150 | return NULL; | 146 | return NULL; |
| @@ -153,8 +149,7 @@ EC_KEY_copy(EC_KEY * dest, const EC_KEY * src) | |||
| 153 | } | 149 | } |
| 154 | /* copy the public key */ | 150 | /* copy the public key */ |
| 155 | if (src->pub_key && src->group) { | 151 | if (src->pub_key && src->group) { |
| 156 | if (dest->pub_key) | 152 | EC_POINT_free(dest->pub_key); |
| 157 | EC_POINT_free(dest->pub_key); | ||
| 158 | dest->pub_key = EC_POINT_new(src->group); | 153 | dest->pub_key = EC_POINT_new(src->group); |
| 159 | if (dest->pub_key == NULL) | 154 | if (dest->pub_key == NULL) |
| 160 | return NULL; | 155 | return NULL; |
| @@ -261,14 +256,12 @@ EC_KEY_generate_key(EC_KEY * eckey) | |||
| 261 | ok = 1; | 256 | ok = 1; |
| 262 | 257 | ||
| 263 | err: | 258 | err: |
| 264 | if (order) | 259 | BN_free(order); |
| 265 | BN_free(order); | ||
| 266 | if (pub_key != NULL && eckey->pub_key == NULL) | 260 | if (pub_key != NULL && eckey->pub_key == NULL) |
| 267 | EC_POINT_free(pub_key); | 261 | EC_POINT_free(pub_key); |
| 268 | if (priv_key != NULL && eckey->priv_key == NULL) | 262 | if (priv_key != NULL && eckey->priv_key == NULL) |
| 269 | BN_free(priv_key); | 263 | BN_free(priv_key); |
| 270 | if (ctx != NULL) | 264 | BN_CTX_free(ctx); |
| 271 | BN_CTX_free(ctx); | ||
| 272 | return (ok); | 265 | return (ok); |
| 273 | } | 266 | } |
| 274 | 267 | ||
| @@ -334,10 +327,8 @@ EC_KEY_check_key(const EC_KEY * eckey) | |||
| 334 | } | 327 | } |
| 335 | ok = 1; | 328 | ok = 1; |
| 336 | err: | 329 | err: |
| 337 | if (ctx != NULL) | 330 | BN_CTX_free(ctx); |
| 338 | BN_CTX_free(ctx); | 331 | EC_POINT_free(point); |
| 339 | if (point != NULL) | ||
| 340 | EC_POINT_free(point); | ||
| 341 | return (ok); | 332 | return (ok); |
| 342 | } | 333 | } |
| 343 | 334 | ||
| @@ -406,10 +397,8 @@ EC_KEY_set_public_key_affine_coordinates(EC_KEY * key, BIGNUM * x, BIGNUM * y) | |||
| 406 | ok = 1; | 397 | ok = 1; |
| 407 | 398 | ||
| 408 | err: | 399 | err: |
| 409 | if (ctx) | 400 | BN_CTX_free(ctx); |
| 410 | BN_CTX_free(ctx); | 401 | EC_POINT_free(point); |
| 411 | if (point) | ||
| 412 | EC_POINT_free(point); | ||
| 413 | return ok; | 402 | return ok; |
| 414 | 403 | ||
| 415 | } | 404 | } |
| @@ -423,8 +412,7 @@ EC_KEY_get0_group(const EC_KEY * key) | |||
| 423 | int | 412 | int |
| 424 | EC_KEY_set_group(EC_KEY * key, const EC_GROUP * group) | 413 | EC_KEY_set_group(EC_KEY * key, const EC_GROUP * group) |
| 425 | { | 414 | { |
| 426 | if (key->group != NULL) | 415 | EC_GROUP_free(key->group); |
| 427 | EC_GROUP_free(key->group); | ||
| 428 | key->group = EC_GROUP_dup(group); | 416 | key->group = EC_GROUP_dup(group); |
| 429 | return (key->group == NULL) ? 0 : 1; | 417 | return (key->group == NULL) ? 0 : 1; |
| 430 | } | 418 | } |
| @@ -438,8 +426,7 @@ EC_KEY_get0_private_key(const EC_KEY * key) | |||
| 438 | int | 426 | int |
| 439 | EC_KEY_set_private_key(EC_KEY * key, const BIGNUM * priv_key) | 427 | EC_KEY_set_private_key(EC_KEY * key, const BIGNUM * priv_key) |
| 440 | { | 428 | { |
| 441 | if (key->priv_key) | 429 | BN_clear_free(key->priv_key); |
| 442 | BN_clear_free(key->priv_key); | ||
| 443 | key->priv_key = BN_dup(priv_key); | 430 | key->priv_key = BN_dup(priv_key); |
| 444 | return (key->priv_key == NULL) ? 0 : 1; | 431 | return (key->priv_key == NULL) ? 0 : 1; |
| 445 | } | 432 | } |
| @@ -453,8 +440,7 @@ EC_KEY_get0_public_key(const EC_KEY * key) | |||
| 453 | int | 440 | int |
| 454 | EC_KEY_set_public_key(EC_KEY * key, const EC_POINT * pub_key) | 441 | EC_KEY_set_public_key(EC_KEY * key, const EC_POINT * pub_key) |
| 455 | { | 442 | { |
| 456 | if (key->pub_key != NULL) | 443 | EC_POINT_free(key->pub_key); |
| 457 | EC_POINT_free(key->pub_key); | ||
| 458 | key->pub_key = EC_POINT_dup(pub_key, key->group); | 444 | key->pub_key = EC_POINT_dup(pub_key, key->group); |
| 459 | return (key->pub_key == NULL) ? 0 : 1; | 445 | return (key->pub_key == NULL) ? 0 : 1; |
| 460 | } | 446 | } |
diff --git a/src/lib/libcrypto/ec/ec_lib.c b/src/lib/libcrypto/ec/ec_lib.c index 3d8b96eb1f..47ccc614d1 100644 --- a/src/lib/libcrypto/ec/ec_lib.c +++ b/src/lib/libcrypto/ec/ec_lib.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec_lib.c,v 1.14 2014/07/10 22:45:57 jsing Exp $ */ | 1 | /* $OpenBSD: ec_lib.c,v 1.15 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Originally written by Bodo Moeller for the OpenSSL project. | 3 | * Originally written by Bodo Moeller for the OpenSSL project. |
| 4 | */ | 4 | */ |
| @@ -124,8 +124,7 @@ EC_GROUP_free(EC_GROUP * group) | |||
| 124 | 124 | ||
| 125 | EC_EX_DATA_free_all_data(&group->extra_data); | 125 | EC_EX_DATA_free_all_data(&group->extra_data); |
| 126 | 126 | ||
| 127 | if (group->generator != NULL) | 127 | EC_POINT_free(group->generator); |
| 128 | EC_POINT_free(group->generator); | ||
| 129 | BN_free(&group->order); | 128 | BN_free(&group->order); |
| 130 | BN_free(&group->cofactor); | 129 | BN_free(&group->cofactor); |
| 131 | 130 | ||
| @@ -148,8 +147,7 @@ EC_GROUP_clear_free(EC_GROUP * group) | |||
| 148 | 147 | ||
| 149 | EC_EX_DATA_clear_free_all_data(&group->extra_data); | 148 | EC_EX_DATA_clear_free_all_data(&group->extra_data); |
| 150 | 149 | ||
| 151 | if (group->generator != NULL) | 150 | EC_POINT_clear_free(group->generator); |
| 152 | EC_POINT_clear_free(group->generator); | ||
| 153 | BN_clear_free(&group->order); | 151 | BN_clear_free(&group->order); |
| 154 | BN_clear_free(&group->cofactor); | 152 | BN_clear_free(&group->cofactor); |
| 155 | 153 | ||
| @@ -200,10 +198,8 @@ EC_GROUP_copy(EC_GROUP * dest, const EC_GROUP * src) | |||
| 200 | return 0; | 198 | return 0; |
| 201 | } else { | 199 | } else { |
| 202 | /* src->generator == NULL */ | 200 | /* src->generator == NULL */ |
| 203 | if (dest->generator != NULL) { | 201 | EC_POINT_clear_free(dest->generator); |
| 204 | EC_POINT_clear_free(dest->generator); | 202 | dest->generator = NULL; |
| 205 | dest->generator = NULL; | ||
| 206 | } | ||
| 207 | } | 203 | } |
| 208 | 204 | ||
| 209 | if (!BN_copy(&dest->order, &src->order)) | 205 | if (!BN_copy(&dest->order, &src->order)) |
| @@ -252,8 +248,7 @@ EC_GROUP_dup(const EC_GROUP * a) | |||
| 252 | 248 | ||
| 253 | err: | 249 | err: |
| 254 | if (!ok) { | 250 | if (!ok) { |
| 255 | if (t) | 251 | EC_GROUP_free(t); |
| 256 | EC_GROUP_free(t); | ||
| 257 | return NULL; | 252 | return NULL; |
| 258 | } else | 253 | } else |
| 259 | return t; | 254 | return t; |
diff --git a/src/lib/libcrypto/ec/ec_mult.c b/src/lib/libcrypto/ec/ec_mult.c index b6f74a1b09..4e49ce4f7b 100644 --- a/src/lib/libcrypto/ec/ec_mult.c +++ b/src/lib/libcrypto/ec/ec_mult.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec_mult.c,v 1.13 2014/06/12 15:49:29 deraadt Exp $ */ | 1 | /* $OpenBSD: ec_mult.c,v 1.14 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Originally written by Bodo Moeller and Nils Larsch for the OpenSSL project. | 3 | * Originally written by Bodo Moeller and Nils Larsch for the OpenSSL project. |
| 4 | */ | 4 | */ |
| @@ -679,10 +679,8 @@ ec_wNAF_mul(const EC_GROUP * group, EC_POINT * r, const BIGNUM * scalar, | |||
| 679 | ret = 1; | 679 | ret = 1; |
| 680 | 680 | ||
| 681 | err: | 681 | err: |
| 682 | if (new_ctx != NULL) | 682 | BN_CTX_free(new_ctx); |
| 683 | BN_CTX_free(new_ctx); | 683 | EC_POINT_free(tmp); |
| 684 | if (tmp != NULL) | ||
| 685 | EC_POINT_free(tmp); | ||
| 686 | free(wsize); | 684 | free(wsize); |
| 687 | free(wNAF_len); | 685 | free(wNAF_len); |
| 688 | if (wNAF != NULL) { | 686 | if (wNAF != NULL) { |
| @@ -862,10 +860,8 @@ ec_wNAF_precompute_mult(EC_GROUP * group, BN_CTX * ctx) | |||
| 862 | err: | 860 | err: |
| 863 | if (ctx != NULL) | 861 | if (ctx != NULL) |
| 864 | BN_CTX_end(ctx); | 862 | BN_CTX_end(ctx); |
| 865 | if (new_ctx != NULL) | 863 | BN_CTX_free(new_ctx); |
| 866 | BN_CTX_free(new_ctx); | 864 | ec_pre_comp_free(pre_comp); |
| 867 | if (pre_comp) | ||
| 868 | ec_pre_comp_free(pre_comp); | ||
| 869 | if (points) { | 865 | if (points) { |
| 870 | EC_POINT **p; | 866 | EC_POINT **p; |
| 871 | 867 | ||
| @@ -873,10 +869,8 @@ err: | |||
| 873 | EC_POINT_free(*p); | 869 | EC_POINT_free(*p); |
| 874 | free(points); | 870 | free(points); |
| 875 | } | 871 | } |
| 876 | if (tmp_point) | 872 | EC_POINT_free(tmp_point); |
| 877 | EC_POINT_free(tmp_point); | 873 | EC_POINT_free(base); |
| 878 | if (base) | ||
| 879 | EC_POINT_free(base); | ||
| 880 | return ret; | 874 | return ret; |
| 881 | } | 875 | } |
| 882 | 876 | ||
diff --git a/src/lib/libcrypto/ec/ec_pmeth.c b/src/lib/libcrypto/ec/ec_pmeth.c index 7ba1d50d7f..07933dc5fd 100644 --- a/src/lib/libcrypto/ec/ec_pmeth.c +++ b/src/lib/libcrypto/ec/ec_pmeth.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec_pmeth.c,v 1.7 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: ec_pmeth.c,v 1.8 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project 2006. | 3 | * project 2006. |
| 4 | */ | 4 | */ |
| @@ -114,8 +114,7 @@ pkey_ec_cleanup(EVP_PKEY_CTX * ctx) | |||
| 114 | { | 114 | { |
| 115 | EC_PKEY_CTX *dctx = ctx->data; | 115 | EC_PKEY_CTX *dctx = ctx->data; |
| 116 | if (dctx) { | 116 | if (dctx) { |
| 117 | if (dctx->gen_group) | 117 | EC_GROUP_free(dctx->gen_group); |
| 118 | EC_GROUP_free(dctx->gen_group); | ||
| 119 | free(dctx); | 118 | free(dctx); |
| 120 | } | 119 | } |
| 121 | } | 120 | } |
| @@ -213,8 +212,7 @@ pkey_ec_ctrl(EVP_PKEY_CTX * ctx, int type, int p1, void *p2) | |||
| 213 | ECerr(EC_F_PKEY_EC_CTRL, EC_R_INVALID_CURVE); | 212 | ECerr(EC_F_PKEY_EC_CTRL, EC_R_INVALID_CURVE); |
| 214 | return 0; | 213 | return 0; |
| 215 | } | 214 | } |
| 216 | if (dctx->gen_group) | 215 | EC_GROUP_free(dctx->gen_group); |
| 217 | EC_GROUP_free(dctx->gen_group); | ||
| 218 | dctx->gen_group = group; | 216 | dctx->gen_group = group; |
| 219 | return 1; | 217 | return 1; |
| 220 | 218 | ||
diff --git a/src/lib/libcrypto/ec/eck_prn.c b/src/lib/libcrypto/ec/eck_prn.c index b0c8bcd22a..aa13d8b08c 100644 --- a/src/lib/libcrypto/ec/eck_prn.c +++ b/src/lib/libcrypto/ec/eck_prn.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: eck_prn.c,v 1.9 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: eck_prn.c,v 1.10 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Written by Nils Larsch for the OpenSSL project. | 3 | * Written by Nils Larsch for the OpenSSL project. |
| 4 | */ | 4 | */ |
| @@ -315,20 +315,13 @@ ECPKParameters_print(BIO * bp, const EC_GROUP * x, int off) | |||
| 315 | err: | 315 | err: |
| 316 | if (!ret) | 316 | if (!ret) |
| 317 | ECerr(EC_F_ECPKPARAMETERS_PRINT, reason); | 317 | ECerr(EC_F_ECPKPARAMETERS_PRINT, reason); |
| 318 | if (p) | 318 | BN_free(p); |
| 319 | BN_free(p); | 319 | BN_free(a); |
| 320 | if (a) | 320 | BN_free(b); |
| 321 | BN_free(a); | 321 | BN_free(gen); |
| 322 | if (b) | 322 | BN_free(order); |
| 323 | BN_free(b); | 323 | BN_free(cofactor); |
| 324 | if (gen) | 324 | BN_CTX_free(ctx); |
| 325 | BN_free(gen); | ||
| 326 | if (order) | ||
| 327 | BN_free(order); | ||
| 328 | if (cofactor) | ||
| 329 | BN_free(cofactor); | ||
| 330 | if (ctx) | ||
| 331 | BN_CTX_free(ctx); | ||
| 332 | free(buffer); | 325 | free(buffer); |
| 333 | return (ret); | 326 | return (ret); |
| 334 | } | 327 | } |
diff --git a/src/lib/libcrypto/ec/ecp_mont.c b/src/lib/libcrypto/ec/ecp_mont.c index ffbce81d4c..af8014ed38 100644 --- a/src/lib/libcrypto/ec/ecp_mont.c +++ b/src/lib/libcrypto/ec/ecp_mont.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ecp_mont.c,v 1.8 2014/06/12 15:49:29 deraadt Exp $ */ | 1 | /* $OpenBSD: ecp_mont.c,v 1.9 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Originally written by Bodo Moeller for the OpenSSL project. | 3 | * Originally written by Bodo Moeller for the OpenSSL project. |
| 4 | */ | 4 | */ |
| @@ -128,14 +128,10 @@ ec_GFp_mont_group_init(EC_GROUP * group) | |||
| 128 | void | 128 | void |
| 129 | ec_GFp_mont_group_finish(EC_GROUP * group) | 129 | ec_GFp_mont_group_finish(EC_GROUP * group) |
| 130 | { | 130 | { |
| 131 | if (group->field_data1 != NULL) { | 131 | BN_MONT_CTX_free(group->field_data1); |
| 132 | BN_MONT_CTX_free(group->field_data1); | 132 | group->field_data1 = NULL; |
| 133 | group->field_data1 = NULL; | 133 | BN_free(group->field_data2); |
| 134 | } | 134 | group->field_data2 = NULL; |
| 135 | if (group->field_data2 != NULL) { | ||
| 136 | BN_free(group->field_data2); | ||
| 137 | group->field_data2 = NULL; | ||
| 138 | } | ||
| 139 | ec_GFp_simple_group_finish(group); | 135 | ec_GFp_simple_group_finish(group); |
| 140 | } | 136 | } |
| 141 | 137 | ||
| @@ -143,14 +139,10 @@ ec_GFp_mont_group_finish(EC_GROUP * group) | |||
| 143 | void | 139 | void |
| 144 | ec_GFp_mont_group_clear_finish(EC_GROUP * group) | 140 | ec_GFp_mont_group_clear_finish(EC_GROUP * group) |
| 145 | { | 141 | { |
| 146 | if (group->field_data1 != NULL) { | 142 | BN_MONT_CTX_free(group->field_data1); |
| 147 | BN_MONT_CTX_free(group->field_data1); | 143 | group->field_data1 = NULL; |
| 148 | group->field_data1 = NULL; | 144 | BN_clear_free(group->field_data2); |
| 149 | } | 145 | group->field_data2 = NULL; |
| 150 | if (group->field_data2 != NULL) { | ||
| 151 | BN_clear_free(group->field_data2); | ||
| 152 | group->field_data2 = NULL; | ||
| 153 | } | ||
| 154 | ec_GFp_simple_group_clear_finish(group); | 146 | ec_GFp_simple_group_clear_finish(group); |
| 155 | } | 147 | } |
| 156 | 148 | ||
| @@ -158,14 +150,11 @@ ec_GFp_mont_group_clear_finish(EC_GROUP * group) | |||
| 158 | int | 150 | int |
| 159 | ec_GFp_mont_group_copy(EC_GROUP * dest, const EC_GROUP * src) | 151 | ec_GFp_mont_group_copy(EC_GROUP * dest, const EC_GROUP * src) |
| 160 | { | 152 | { |
| 161 | if (dest->field_data1 != NULL) { | 153 | BN_MONT_CTX_free(dest->field_data1); |
| 162 | BN_MONT_CTX_free(dest->field_data1); | 154 | dest->field_data1 = NULL; |
| 163 | dest->field_data1 = NULL; | 155 | BN_clear_free(dest->field_data2); |
| 164 | } | 156 | dest->field_data2 = NULL; |
| 165 | if (dest->field_data2 != NULL) { | 157 | |
| 166 | BN_clear_free(dest->field_data2); | ||
| 167 | dest->field_data2 = NULL; | ||
| 168 | } | ||
| 169 | if (!ec_GFp_simple_group_copy(dest, src)) | 158 | if (!ec_GFp_simple_group_copy(dest, src)) |
| 170 | return 0; | 159 | return 0; |
| 171 | 160 | ||
| @@ -201,14 +190,10 @@ ec_GFp_mont_group_set_curve(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, | |||
| 201 | BIGNUM *one = NULL; | 190 | BIGNUM *one = NULL; |
| 202 | int ret = 0; | 191 | int ret = 0; |
| 203 | 192 | ||
| 204 | if (group->field_data1 != NULL) { | 193 | BN_MONT_CTX_free(group->field_data1); |
| 205 | BN_MONT_CTX_free(group->field_data1); | 194 | group->field_data1 = NULL; |
| 206 | group->field_data1 = NULL; | 195 | BN_free(group->field_data2); |
| 207 | } | 196 | group->field_data2 = NULL; |
| 208 | if (group->field_data2 != NULL) { | ||
| 209 | BN_free(group->field_data2); | ||
| 210 | group->field_data2 = NULL; | ||
| 211 | } | ||
| 212 | if (ctx == NULL) { | 197 | if (ctx == NULL) { |
| 213 | ctx = new_ctx = BN_CTX_new(); | 198 | ctx = new_ctx = BN_CTX_new(); |
| 214 | if (ctx == NULL) | 199 | if (ctx == NULL) |
| @@ -241,10 +226,8 @@ ec_GFp_mont_group_set_curve(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, | |||
| 241 | group->field_data2 = NULL; | 226 | group->field_data2 = NULL; |
| 242 | } | 227 | } |
| 243 | err: | 228 | err: |
| 244 | if (new_ctx != NULL) | 229 | BN_CTX_free(new_ctx); |
| 245 | BN_CTX_free(new_ctx); | 230 | BN_MONT_CTX_free(mont); |
| 246 | if (mont != NULL) | ||
| 247 | BN_MONT_CTX_free(mont); | ||
| 248 | return ret; | 231 | return ret; |
| 249 | } | 232 | } |
| 250 | 233 | ||
diff --git a/src/lib/libcrypto/ec/ecp_nist.c b/src/lib/libcrypto/ec/ecp_nist.c index d49d1735f3..a33f9d9e39 100644 --- a/src/lib/libcrypto/ec/ecp_nist.c +++ b/src/lib/libcrypto/ec/ecp_nist.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ecp_nist.c,v 1.8 2014/06/12 15:49:29 deraadt Exp $ */ | 1 | /* $OpenBSD: ecp_nist.c,v 1.9 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Written by Nils Larsch for the OpenSSL project. | 3 | * Written by Nils Larsch for the OpenSSL project. |
| 4 | */ | 4 | */ |
| @@ -153,8 +153,7 @@ ec_GFp_nist_group_set_curve(EC_GROUP *group, const BIGNUM *p, | |||
| 153 | 153 | ||
| 154 | err: | 154 | err: |
| 155 | BN_CTX_end(ctx); | 155 | BN_CTX_end(ctx); |
| 156 | if (new_ctx != NULL) | 156 | BN_CTX_free(new_ctx); |
| 157 | BN_CTX_free(new_ctx); | ||
| 158 | return ret; | 157 | return ret; |
| 159 | } | 158 | } |
| 160 | 159 | ||
| @@ -181,8 +180,7 @@ ec_GFp_nist_field_mul(const EC_GROUP *group, BIGNUM *r, const BIGNUM *a, | |||
| 181 | 180 | ||
| 182 | ret = 1; | 181 | ret = 1; |
| 183 | err: | 182 | err: |
| 184 | if (ctx_new) | 183 | BN_CTX_free(ctx_new); |
| 185 | BN_CTX_free(ctx_new); | ||
| 186 | return ret; | 184 | return ret; |
| 187 | } | 185 | } |
| 188 | 186 | ||
| @@ -209,7 +207,6 @@ ec_GFp_nist_field_sqr(const EC_GROUP * group, BIGNUM * r, const BIGNUM * a, | |||
| 209 | 207 | ||
| 210 | ret = 1; | 208 | ret = 1; |
| 211 | err: | 209 | err: |
| 212 | if (ctx_new) | 210 | BN_CTX_free(ctx_new); |
| 213 | BN_CTX_free(ctx_new); | ||
| 214 | return ret; | 211 | return ret; |
| 215 | } | 212 | } |
diff --git a/src/lib/libcrypto/ec/ecp_nistp224.c b/src/lib/libcrypto/ec/ecp_nistp224.c index c466d2db83..ed0bad2a72 100644 --- a/src/lib/libcrypto/ec/ecp_nistp224.c +++ b/src/lib/libcrypto/ec/ecp_nistp224.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ecp_nistp224.c,v 1.14 2014/07/10 22:45:57 jsing Exp $ */ | 1 | /* $OpenBSD: ecp_nistp224.c,v 1.15 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Written by Emilia Kasper (Google) for the OpenSSL project. | 3 | * Written by Emilia Kasper (Google) for the OpenSSL project. |
| 4 | */ | 4 | */ |
| @@ -1285,8 +1285,7 @@ ec_GFp_nistp224_group_set_curve(EC_GROUP * group, const BIGNUM * p, | |||
| 1285 | ret = ec_GFp_simple_group_set_curve(group, p, a, b, ctx); | 1285 | ret = ec_GFp_simple_group_set_curve(group, p, a, b, ctx); |
| 1286 | err: | 1286 | err: |
| 1287 | BN_CTX_end(ctx); | 1287 | BN_CTX_end(ctx); |
| 1288 | if (new_ctx != NULL) | 1288 | BN_CTX_free(new_ctx); |
| 1289 | BN_CTX_free(new_ctx); | ||
| 1290 | return ret; | 1289 | return ret; |
| 1291 | } | 1290 | } |
| 1292 | 1291 | ||
| @@ -1545,10 +1544,8 @@ ec_GFp_nistp224_points_mul(const EC_GROUP * group, EC_POINT * r, | |||
| 1545 | 1544 | ||
| 1546 | err: | 1545 | err: |
| 1547 | BN_CTX_end(ctx); | 1546 | BN_CTX_end(ctx); |
| 1548 | if (generator != NULL) | 1547 | EC_POINT_free(generator); |
| 1549 | EC_POINT_free(generator); | 1548 | BN_CTX_free(new_ctx); |
| 1550 | if (new_ctx != NULL) | ||
| 1551 | BN_CTX_free(new_ctx); | ||
| 1552 | free(secrets); | 1549 | free(secrets); |
| 1553 | free(pre_comp); | 1550 | free(pre_comp); |
| 1554 | free(tmp_felems); | 1551 | free(tmp_felems); |
| @@ -1676,12 +1673,9 @@ ec_GFp_nistp224_precompute_mult(EC_GROUP * group, BN_CTX * ctx) | |||
| 1676 | pre = NULL; | 1673 | pre = NULL; |
| 1677 | err: | 1674 | err: |
| 1678 | BN_CTX_end(ctx); | 1675 | BN_CTX_end(ctx); |
| 1679 | if (generator != NULL) | 1676 | EC_POINT_free(generator); |
| 1680 | EC_POINT_free(generator); | 1677 | BN_CTX_free(new_ctx); |
| 1681 | if (new_ctx != NULL) | 1678 | nistp224_pre_comp_free(pre); |
| 1682 | BN_CTX_free(new_ctx); | ||
| 1683 | if (pre) | ||
| 1684 | nistp224_pre_comp_free(pre); | ||
| 1685 | return ret; | 1679 | return ret; |
| 1686 | } | 1680 | } |
| 1687 | 1681 | ||
diff --git a/src/lib/libcrypto/ec/ecp_nistp256.c b/src/lib/libcrypto/ec/ecp_nistp256.c index 7b122e6307..6905b614bc 100644 --- a/src/lib/libcrypto/ec/ecp_nistp256.c +++ b/src/lib/libcrypto/ec/ecp_nistp256.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ecp_nistp256.c,v 1.13 2014/07/10 22:45:57 jsing Exp $ */ | 1 | /* $OpenBSD: ecp_nistp256.c,v 1.14 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Written by Adam Langley (Google) for the OpenSSL project | 3 | * Written by Adam Langley (Google) for the OpenSSL project |
| 4 | */ | 4 | */ |
| @@ -1834,8 +1834,7 @@ ec_GFp_nistp256_group_set_curve(EC_GROUP * group, const BIGNUM * p, | |||
| 1834 | ret = ec_GFp_simple_group_set_curve(group, p, a, b, ctx); | 1834 | ret = ec_GFp_simple_group_set_curve(group, p, a, b, ctx); |
| 1835 | err: | 1835 | err: |
| 1836 | BN_CTX_end(ctx); | 1836 | BN_CTX_end(ctx); |
| 1837 | if (new_ctx != NULL) | 1837 | BN_CTX_free(new_ctx); |
| 1838 | BN_CTX_free(new_ctx); | ||
| 1839 | return ret; | 1838 | return ret; |
| 1840 | } | 1839 | } |
| 1841 | 1840 | ||
| @@ -2098,10 +2097,8 @@ ec_GFp_nistp256_points_mul(const EC_GROUP * group, EC_POINT * r, | |||
| 2098 | 2097 | ||
| 2099 | err: | 2098 | err: |
| 2100 | BN_CTX_end(ctx); | 2099 | BN_CTX_end(ctx); |
| 2101 | if (generator != NULL) | 2100 | EC_POINT_free(generator); |
| 2102 | EC_POINT_free(generator); | 2101 | BN_CTX_free(new_ctx); |
| 2103 | if (new_ctx != NULL) | ||
| 2104 | BN_CTX_free(new_ctx); | ||
| 2105 | free(secrets); | 2102 | free(secrets); |
| 2106 | free(pre_comp); | 2103 | free(pre_comp); |
| 2107 | free(tmp_smallfelems); | 2104 | free(tmp_smallfelems); |
| @@ -2223,12 +2220,9 @@ ec_GFp_nistp256_precompute_mult(EC_GROUP * group, BN_CTX * ctx) | |||
| 2223 | pre = NULL; | 2220 | pre = NULL; |
| 2224 | err: | 2221 | err: |
| 2225 | BN_CTX_end(ctx); | 2222 | BN_CTX_end(ctx); |
| 2226 | if (generator != NULL) | 2223 | EC_POINT_free(generator); |
| 2227 | EC_POINT_free(generator); | 2224 | BN_CTX_free(new_ctx); |
| 2228 | if (new_ctx != NULL) | 2225 | nistp256_pre_comp_free(pre); |
| 2229 | BN_CTX_free(new_ctx); | ||
| 2230 | if (pre) | ||
| 2231 | nistp256_pre_comp_free(pre); | ||
| 2232 | return ret; | 2226 | return ret; |
| 2233 | } | 2227 | } |
| 2234 | 2228 | ||
diff --git a/src/lib/libcrypto/ec/ecp_nistp521.c b/src/lib/libcrypto/ec/ecp_nistp521.c index cec0a3b470..c9313ada8e 100644 --- a/src/lib/libcrypto/ec/ecp_nistp521.c +++ b/src/lib/libcrypto/ec/ecp_nistp521.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ecp_nistp521.c,v 1.14 2014/07/10 22:45:57 jsing Exp $ */ | 1 | /* $OpenBSD: ecp_nistp521.c,v 1.15 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Written by Adam Langley (Google) for the OpenSSL project | 3 | * Written by Adam Langley (Google) for the OpenSSL project |
| 4 | */ | 4 | */ |
| @@ -1725,8 +1725,7 @@ ec_GFp_nistp521_group_set_curve(EC_GROUP * group, const BIGNUM * p, | |||
| 1725 | ret = ec_GFp_simple_group_set_curve(group, p, a, b, ctx); | 1725 | ret = ec_GFp_simple_group_set_curve(group, p, a, b, ctx); |
| 1726 | err: | 1726 | err: |
| 1727 | BN_CTX_end(ctx); | 1727 | BN_CTX_end(ctx); |
| 1728 | if (new_ctx != NULL) | 1728 | BN_CTX_free(new_ctx); |
| 1729 | BN_CTX_free(new_ctx); | ||
| 1730 | return ret; | 1729 | return ret; |
| 1731 | } | 1730 | } |
| 1732 | 1731 | ||
| @@ -1985,10 +1984,8 @@ ec_GFp_nistp521_points_mul(const EC_GROUP * group, EC_POINT * r, | |||
| 1985 | 1984 | ||
| 1986 | err: | 1985 | err: |
| 1987 | BN_CTX_end(ctx); | 1986 | BN_CTX_end(ctx); |
| 1988 | if (generator != NULL) | 1987 | EC_POINT_free(generator); |
| 1989 | EC_POINT_free(generator); | 1988 | BN_CTX_free(new_ctx); |
| 1990 | if (new_ctx != NULL) | ||
| 1991 | BN_CTX_free(new_ctx); | ||
| 1992 | free(secrets); | 1989 | free(secrets); |
| 1993 | free(pre_comp); | 1990 | free(pre_comp); |
| 1994 | free(tmp_felems); | 1991 | free(tmp_felems); |
| @@ -2096,12 +2093,9 @@ ec_GFp_nistp521_precompute_mult(EC_GROUP * group, BN_CTX * ctx) | |||
| 2096 | pre = NULL; | 2093 | pre = NULL; |
| 2097 | err: | 2094 | err: |
| 2098 | BN_CTX_end(ctx); | 2095 | BN_CTX_end(ctx); |
| 2099 | if (generator != NULL) | 2096 | EC_POINT_free(generator); |
| 2100 | EC_POINT_free(generator); | 2097 | BN_CTX_free(new_ctx); |
| 2101 | if (new_ctx != NULL) | 2098 | nistp521_pre_comp_free(pre); |
| 2102 | BN_CTX_free(new_ctx); | ||
| 2103 | if (pre) | ||
| 2104 | nistp521_pre_comp_free(pre); | ||
| 2105 | return ret; | 2099 | return ret; |
| 2106 | } | 2100 | } |
| 2107 | 2101 | ||
diff --git a/src/lib/libcrypto/ec/ecp_oct.c b/src/lib/libcrypto/ec/ecp_oct.c index 2f2920d70d..d2402ee0d8 100644 --- a/src/lib/libcrypto/ec/ecp_oct.c +++ b/src/lib/libcrypto/ec/ecp_oct.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ecp_oct.c,v 1.4 2014/06/12 15:49:29 deraadt Exp $ */ | 1 | /* $OpenBSD: ecp_oct.c,v 1.5 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Includes code written by Lenka Fibikova <fibikova@exp-math.uni-essen.de> | 2 | /* Includes code written by Lenka Fibikova <fibikova@exp-math.uni-essen.de> |
| 3 | * for the OpenSSL project. | 3 | * for the OpenSSL project. |
| 4 | * Includes code written by Bodo Moeller for the OpenSSL project. | 4 | * Includes code written by Bodo Moeller for the OpenSSL project. |
| @@ -190,8 +190,7 @@ ec_GFp_simple_set_compressed_coordinates(const EC_GROUP * group, EC_POINT * poin | |||
| 190 | 190 | ||
| 191 | err: | 191 | err: |
| 192 | BN_CTX_end(ctx); | 192 | BN_CTX_end(ctx); |
| 193 | if (new_ctx != NULL) | 193 | BN_CTX_free(new_ctx); |
| 194 | BN_CTX_free(new_ctx); | ||
| 195 | return ret; | 194 | return ret; |
| 196 | } | 195 | } |
| 197 | 196 | ||
| @@ -290,15 +289,13 @@ ec_GFp_simple_point2oct(const EC_GROUP * group, const EC_POINT * point, point_co | |||
| 290 | } | 289 | } |
| 291 | if (used_ctx) | 290 | if (used_ctx) |
| 292 | BN_CTX_end(ctx); | 291 | BN_CTX_end(ctx); |
| 293 | if (new_ctx != NULL) | 292 | BN_CTX_free(new_ctx); |
| 294 | BN_CTX_free(new_ctx); | ||
| 295 | return ret; | 293 | return ret; |
| 296 | 294 | ||
| 297 | err: | 295 | err: |
| 298 | if (used_ctx) | 296 | if (used_ctx) |
| 299 | BN_CTX_end(ctx); | 297 | BN_CTX_end(ctx); |
| 300 | if (new_ctx != NULL) | 298 | BN_CTX_free(new_ctx); |
| 301 | BN_CTX_free(new_ctx); | ||
| 302 | return 0; | 299 | return 0; |
| 303 | } | 300 | } |
| 304 | 301 | ||
| @@ -391,7 +388,6 @@ ec_GFp_simple_oct2point(const EC_GROUP * group, EC_POINT * point, | |||
| 391 | 388 | ||
| 392 | err: | 389 | err: |
| 393 | BN_CTX_end(ctx); | 390 | BN_CTX_end(ctx); |
| 394 | if (new_ctx != NULL) | 391 | BN_CTX_free(new_ctx); |
| 395 | BN_CTX_free(new_ctx); | ||
| 396 | return ret; | 392 | return ret; |
| 397 | } | 393 | } |
diff --git a/src/lib/libcrypto/ec/ecp_smpl.c b/src/lib/libcrypto/ec/ecp_smpl.c index 5ba9a925d6..dabc5af899 100644 --- a/src/lib/libcrypto/ec/ecp_smpl.c +++ b/src/lib/libcrypto/ec/ecp_smpl.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ecp_smpl.c,v 1.12 2014/06/12 15:49:29 deraadt Exp $ */ | 1 | /* $OpenBSD: ecp_smpl.c,v 1.13 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Includes code written by Lenka Fibikova <fibikova@exp-math.uni-essen.de> | 2 | /* Includes code written by Lenka Fibikova <fibikova@exp-math.uni-essen.de> |
| 3 | * for the OpenSSL project. | 3 | * for the OpenSSL project. |
| 4 | * Includes code written by Bodo Moeller for the OpenSSL project. | 4 | * Includes code written by Bodo Moeller for the OpenSSL project. |
| @@ -222,8 +222,7 @@ ec_GFp_simple_group_set_curve(EC_GROUP * group, | |||
| 222 | 222 | ||
| 223 | err: | 223 | err: |
| 224 | BN_CTX_end(ctx); | 224 | BN_CTX_end(ctx); |
| 225 | if (new_ctx != NULL) | 225 | BN_CTX_free(new_ctx); |
| 226 | BN_CTX_free(new_ctx); | ||
| 227 | return ret; | 226 | return ret; |
| 228 | } | 227 | } |
| 229 | 228 | ||
| @@ -267,8 +266,7 @@ ec_GFp_simple_group_get_curve(const EC_GROUP * group, BIGNUM * p, BIGNUM * a, BI | |||
| 267 | ret = 1; | 266 | ret = 1; |
| 268 | 267 | ||
| 269 | err: | 268 | err: |
| 270 | if (new_ctx) | 269 | BN_CTX_free(new_ctx); |
| 271 | BN_CTX_free(new_ctx); | ||
| 272 | return ret; | 270 | return ret; |
| 273 | } | 271 | } |
| 274 | 272 | ||
| @@ -348,8 +346,7 @@ ec_GFp_simple_group_check_discriminant(const EC_GROUP * group, BN_CTX * ctx) | |||
| 348 | err: | 346 | err: |
| 349 | if (ctx != NULL) | 347 | if (ctx != NULL) |
| 350 | BN_CTX_end(ctx); | 348 | BN_CTX_end(ctx); |
| 351 | if (new_ctx != NULL) | 349 | BN_CTX_free(new_ctx); |
| 352 | BN_CTX_free(new_ctx); | ||
| 353 | return ret; | 350 | return ret; |
| 354 | } | 351 | } |
| 355 | 352 | ||
| @@ -457,8 +454,7 @@ ec_GFp_simple_set_Jprojective_coordinates_GFp(const EC_GROUP * group, EC_POINT * | |||
| 457 | ret = 1; | 454 | ret = 1; |
| 458 | 455 | ||
| 459 | err: | 456 | err: |
| 460 | if (new_ctx != NULL) | 457 | BN_CTX_free(new_ctx); |
| 461 | BN_CTX_free(new_ctx); | ||
| 462 | return ret; | 458 | return ret; |
| 463 | } | 459 | } |
| 464 | 460 | ||
| @@ -506,8 +502,7 @@ ec_GFp_simple_get_Jprojective_coordinates_GFp(const EC_GROUP * group, const EC_P | |||
| 506 | ret = 1; | 502 | ret = 1; |
| 507 | 503 | ||
| 508 | err: | 504 | err: |
| 509 | if (new_ctx != NULL) | 505 | BN_CTX_free(new_ctx); |
| 510 | BN_CTX_free(new_ctx); | ||
| 511 | return ret; | 506 | return ret; |
| 512 | } | 507 | } |
| 513 | 508 | ||
| @@ -626,8 +621,7 @@ ec_GFp_simple_point_get_affine_coordinates(const EC_GROUP * group, const EC_POIN | |||
| 626 | 621 | ||
| 627 | err: | 622 | err: |
| 628 | BN_CTX_end(ctx); | 623 | BN_CTX_end(ctx); |
| 629 | if (new_ctx != NULL) | 624 | BN_CTX_free(new_ctx); |
| 630 | BN_CTX_free(new_ctx); | ||
| 631 | return ret; | 625 | return ret; |
| 632 | } | 626 | } |
| 633 | 627 | ||
| @@ -810,8 +804,7 @@ ec_GFp_simple_add(const EC_GROUP * group, EC_POINT * r, const EC_POINT * a, cons | |||
| 810 | end: | 804 | end: |
| 811 | if (ctx) /* otherwise we already called BN_CTX_end */ | 805 | if (ctx) /* otherwise we already called BN_CTX_end */ |
| 812 | BN_CTX_end(ctx); | 806 | BN_CTX_end(ctx); |
| 813 | if (new_ctx != NULL) | 807 | BN_CTX_free(new_ctx); |
| 814 | BN_CTX_free(new_ctx); | ||
| 815 | return ret; | 808 | return ret; |
| 816 | } | 809 | } |
| 817 | 810 | ||
| @@ -951,8 +944,7 @@ ec_GFp_simple_dbl(const EC_GROUP * group, EC_POINT * r, const EC_POINT * a, BN_C | |||
| 951 | 944 | ||
| 952 | err: | 945 | err: |
| 953 | BN_CTX_end(ctx); | 946 | BN_CTX_end(ctx); |
| 954 | if (new_ctx != NULL) | 947 | BN_CTX_free(new_ctx); |
| 955 | BN_CTX_free(new_ctx); | ||
| 956 | return ret; | 948 | return ret; |
| 957 | } | 949 | } |
| 958 | 950 | ||
| @@ -1071,8 +1063,7 @@ ec_GFp_simple_is_on_curve(const EC_GROUP * group, const EC_POINT * point, BN_CTX | |||
| 1071 | 1063 | ||
| 1072 | err: | 1064 | err: |
| 1073 | BN_CTX_end(ctx); | 1065 | BN_CTX_end(ctx); |
| 1074 | if (new_ctx != NULL) | 1066 | BN_CTX_free(new_ctx); |
| 1075 | BN_CTX_free(new_ctx); | ||
| 1076 | return ret; | 1067 | return ret; |
| 1077 | } | 1068 | } |
| 1078 | 1069 | ||
| @@ -1172,8 +1163,7 @@ ec_GFp_simple_cmp(const EC_GROUP * group, const EC_POINT * a, const EC_POINT * b | |||
| 1172 | 1163 | ||
| 1173 | end: | 1164 | end: |
| 1174 | BN_CTX_end(ctx); | 1165 | BN_CTX_end(ctx); |
| 1175 | if (new_ctx != NULL) | 1166 | BN_CTX_free(new_ctx); |
| 1176 | BN_CTX_free(new_ctx); | ||
| 1177 | return ret; | 1167 | return ret; |
| 1178 | } | 1168 | } |
| 1179 | 1169 | ||
| @@ -1211,8 +1201,7 @@ ec_GFp_simple_make_affine(const EC_GROUP * group, EC_POINT * point, BN_CTX * ctx | |||
| 1211 | 1201 | ||
| 1212 | err: | 1202 | err: |
| 1213 | BN_CTX_end(ctx); | 1203 | BN_CTX_end(ctx); |
| 1214 | if (new_ctx != NULL) | 1204 | BN_CTX_free(new_ctx); |
| 1215 | BN_CTX_free(new_ctx); | ||
| 1216 | return ret; | 1205 | return ret; |
| 1217 | } | 1206 | } |
| 1218 | 1207 | ||
| @@ -1377,16 +1366,14 @@ ec_GFp_simple_points_make_affine(const EC_GROUP * group, size_t num, EC_POINT * | |||
| 1377 | 1366 | ||
| 1378 | err: | 1367 | err: |
| 1379 | BN_CTX_end(ctx); | 1368 | BN_CTX_end(ctx); |
| 1380 | if (new_ctx != NULL) | 1369 | BN_CTX_free(new_ctx); |
| 1381 | BN_CTX_free(new_ctx); | ||
| 1382 | if (heap != NULL) { | 1370 | if (heap != NULL) { |
| 1383 | /* | 1371 | /* |
| 1384 | * heap[pow2/2] .. heap[pow2-1] have not been allocated | 1372 | * heap[pow2/2] .. heap[pow2-1] have not been allocated |
| 1385 | * locally! | 1373 | * locally! |
| 1386 | */ | 1374 | */ |
| 1387 | for (i = pow2 / 2 - 1; i > 0; i--) { | 1375 | for (i = pow2 / 2 - 1; i > 0; i--) { |
| 1388 | if (heap[i] != NULL) | 1376 | BN_clear_free(heap[i]); |
| 1389 | BN_clear_free(heap[i]); | ||
| 1390 | } | 1377 | } |
| 1391 | free(heap); | 1378 | free(heap); |
| 1392 | } | 1379 | } |
diff --git a/src/lib/libcrypto/ecdh/ech_ossl.c b/src/lib/libcrypto/ecdh/ech_ossl.c index d82ace3670..ee130edeee 100644 --- a/src/lib/libcrypto/ecdh/ech_ossl.c +++ b/src/lib/libcrypto/ecdh/ech_ossl.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ech_ossl.c,v 1.7 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: ech_ossl.c,v 1.8 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* ==================================================================== | 2 | /* ==================================================================== |
| 3 | * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. | 3 | * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. |
| 4 | * | 4 | * |
| @@ -201,9 +201,10 @@ static int ecdh_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, | |||
| 201 | } | 201 | } |
| 202 | 202 | ||
| 203 | err: | 203 | err: |
| 204 | if (tmp) EC_POINT_free(tmp); | 204 | EC_POINT_free(tmp); |
| 205 | if (ctx) BN_CTX_end(ctx); | 205 | if (ctx) |
| 206 | if (ctx) BN_CTX_free(ctx); | 206 | BN_CTX_end(ctx); |
| 207 | BN_CTX_free(ctx); | ||
| 207 | free(buf); | 208 | free(buf); |
| 208 | return(ret); | 209 | return(ret); |
| 209 | } | 210 | } |
diff --git a/src/lib/libcrypto/ecdsa/ecs_ossl.c b/src/lib/libcrypto/ecdsa/ecs_ossl.c index e2c4b1d6d1..0dde5386ff 100644 --- a/src/lib/libcrypto/ecdsa/ecs_ossl.c +++ b/src/lib/libcrypto/ecdsa/ecs_ossl.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ecs_ossl.c,v 1.4 2014/07/10 22:45:57 jsing Exp $ */ | 1 | /* $OpenBSD: ecs_ossl.c,v 1.5 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Written by Nils Larsch for the OpenSSL project | 3 | * Written by Nils Larsch for the OpenSSL project |
| 4 | */ | 4 | */ |
| @@ -189,28 +189,22 @@ static int ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp, | |||
| 189 | goto err; | 189 | goto err; |
| 190 | } | 190 | } |
| 191 | /* clear old values if necessary */ | 191 | /* clear old values if necessary */ |
| 192 | if (*rp != NULL) | 192 | BN_clear_free(*rp); |
| 193 | BN_clear_free(*rp); | 193 | BN_clear_free(*kinvp); |
| 194 | if (*kinvp != NULL) | ||
| 195 | BN_clear_free(*kinvp); | ||
| 196 | /* save the pre-computed values */ | 194 | /* save the pre-computed values */ |
| 197 | *rp = r; | 195 | *rp = r; |
| 198 | *kinvp = k; | 196 | *kinvp = k; |
| 199 | ret = 1; | 197 | ret = 1; |
| 200 | err: | 198 | err: |
| 201 | if (!ret) | 199 | if (!ret) { |
| 202 | { | 200 | BN_clear_free(k); |
| 203 | if (k != NULL) BN_clear_free(k); | 201 | BN_clear_free(r); |
| 204 | if (r != NULL) BN_clear_free(r); | ||
| 205 | } | 202 | } |
| 206 | if (ctx_in == NULL) | 203 | if (ctx_in == NULL) |
| 207 | BN_CTX_free(ctx); | 204 | BN_CTX_free(ctx); |
| 208 | if (order != NULL) | 205 | BN_free(order); |
| 209 | BN_free(order); | 206 | EC_POINT_free(tmp_point); |
| 210 | if (tmp_point != NULL) | 207 | BN_clear_free(X); |
| 211 | EC_POINT_free(tmp_point); | ||
| 212 | if (X) | ||
| 213 | BN_clear_free(X); | ||
| 214 | return(ret); | 208 | return(ret); |
| 215 | } | 209 | } |
| 216 | 210 | ||
| @@ -333,16 +327,11 @@ err: | |||
| 333 | ECDSA_SIG_free(ret); | 327 | ECDSA_SIG_free(ret); |
| 334 | ret = NULL; | 328 | ret = NULL; |
| 335 | } | 329 | } |
| 336 | if (ctx) | 330 | BN_CTX_free(ctx); |
| 337 | BN_CTX_free(ctx); | 331 | BN_clear_free(m); |
| 338 | if (m) | 332 | BN_clear_free(tmp); |
| 339 | BN_clear_free(m); | 333 | BN_free(order); |
| 340 | if (tmp) | 334 | BN_clear_free(kinv); |
| 341 | BN_clear_free(tmp); | ||
| 342 | if (order) | ||
| 343 | BN_free(order); | ||
| 344 | if (kinv) | ||
| 345 | BN_clear_free(kinv); | ||
| 346 | return ret; | 335 | return ret; |
| 347 | } | 336 | } |
| 348 | 337 | ||
| @@ -473,7 +462,6 @@ static int ecdsa_do_verify(const unsigned char *dgst, int dgst_len, | |||
| 473 | err: | 462 | err: |
| 474 | BN_CTX_end(ctx); | 463 | BN_CTX_end(ctx); |
| 475 | BN_CTX_free(ctx); | 464 | BN_CTX_free(ctx); |
| 476 | if (point) | 465 | EC_POINT_free(point); |
| 477 | EC_POINT_free(point); | ||
| 478 | return ret; | 466 | return ret; |
| 479 | } | 467 | } |
diff --git a/src/lib/libcrypto/engine/eng_rsax.c b/src/lib/libcrypto/engine/eng_rsax.c index daeb7e6ebb..358dac2088 100644 --- a/src/lib/libcrypto/engine/eng_rsax.c +++ b/src/lib/libcrypto/engine/eng_rsax.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: eng_rsax.c,v 1.9 2014/07/10 22:45:57 jsing Exp $ */ | 1 | /* $OpenBSD: eng_rsax.c,v 1.10 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Copyright (c) 2010-2010 Intel Corp. | 2 | /* Copyright (c) 2010-2010 Intel Corp. |
| 3 | * Author: Vinodh.Gopal@intel.com | 3 | * Author: Vinodh.Gopal@intel.com |
| 4 | * Jim Guilford | 4 | * Jim Guilford |
| @@ -307,12 +307,9 @@ e_rsax_rsa_finish(RSA *rsa) | |||
| 307 | free(hptr); | 307 | free(hptr); |
| 308 | RSA_set_ex_data(rsa, rsax_ex_data_idx, NULL); | 308 | RSA_set_ex_data(rsa, rsax_ex_data_idx, NULL); |
| 309 | } | 309 | } |
| 310 | if (rsa->_method_mod_n) | 310 | BN_MONT_CTX_free(rsa->_method_mod_n); |
| 311 | BN_MONT_CTX_free(rsa->_method_mod_n); | 311 | BN_MONT_CTX_free(rsa->_method_mod_p); |
| 312 | if (rsa->_method_mod_p) | 312 | BN_MONT_CTX_free(rsa->_method_mod_q); |
| 313 | BN_MONT_CTX_free(rsa->_method_mod_p); | ||
| 314 | if (rsa->_method_mod_q) | ||
| 315 | BN_MONT_CTX_free(rsa->_method_mod_q); | ||
| 316 | return 1; | 313 | return 1; |
| 317 | } | 314 | } |
| 318 | 315 | ||
diff --git a/src/lib/libcrypto/evp/digest.c b/src/lib/libcrypto/evp/digest.c index 9a4b1a6293..d582d7954e 100644 --- a/src/lib/libcrypto/evp/digest.c +++ b/src/lib/libcrypto/evp/digest.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: digest.c,v 1.21 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: digest.c,v 1.22 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -358,8 +358,7 @@ EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx) | |||
| 358 | OPENSSL_cleanse(ctx->md_data, ctx->digest->ctx_size); | 358 | OPENSSL_cleanse(ctx->md_data, ctx->digest->ctx_size); |
| 359 | free(ctx->md_data); | 359 | free(ctx->md_data); |
| 360 | } | 360 | } |
| 361 | if (ctx->pctx) | 361 | EVP_PKEY_CTX_free(ctx->pctx); |
| 362 | EVP_PKEY_CTX_free(ctx->pctx); | ||
| 363 | #ifndef OPENSSL_NO_ENGINE | 362 | #ifndef OPENSSL_NO_ENGINE |
| 364 | if (ctx->engine) | 363 | if (ctx->engine) |
| 365 | /* The EVP_MD we used belongs to an ENGINE, release the | 364 | /* The EVP_MD we used belongs to an ENGINE, release the |
diff --git a/src/lib/libcrypto/evp/evp_pkey.c b/src/lib/libcrypto/evp/evp_pkey.c index cf7a39be7b..38a324558f 100644 --- a/src/lib/libcrypto/evp/evp_pkey.c +++ b/src/lib/libcrypto/evp/evp_pkey.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: evp_pkey.c,v 1.16 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: evp_pkey.c,v 1.17 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project 1999. | 3 | * project 1999. |
| 4 | */ | 4 | */ |
| @@ -104,7 +104,7 @@ EVP_PKCS82PKEY(PKCS8_PRIV_KEY_INFO *p8) | |||
| 104 | return pkey; | 104 | return pkey; |
| 105 | 105 | ||
| 106 | error: | 106 | error: |
| 107 | EVP_PKEY_free (pkey); | 107 | EVP_PKEY_free(pkey); |
| 108 | return NULL; | 108 | return NULL; |
| 109 | } | 109 | } |
| 110 | 110 | ||
diff --git a/src/lib/libcrypto/evp/pmeth_fn.c b/src/lib/libcrypto/evp/pmeth_fn.c index c4a53b0d5f..4cf18a0be1 100644 --- a/src/lib/libcrypto/evp/pmeth_fn.c +++ b/src/lib/libcrypto/evp/pmeth_fn.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: pmeth_fn.c,v 1.4 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: pmeth_fn.c,v 1.5 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project 2006. | 3 | * project 2006. |
| 4 | */ | 4 | */ |
| @@ -331,8 +331,7 @@ EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer) | |||
| 331 | return -1; | 331 | return -1; |
| 332 | } | 332 | } |
| 333 | 333 | ||
| 334 | if (ctx->peerkey) | 334 | EVP_PKEY_free(ctx->peerkey); |
| 335 | EVP_PKEY_free(ctx->peerkey); | ||
| 336 | ctx->peerkey = peer; | 335 | ctx->peerkey = peer; |
| 337 | 336 | ||
| 338 | ret = ctx->pmeth->ctrl(ctx, EVP_PKEY_CTRL_PEER_KEY, 1, peer); | 337 | ret = ctx->pmeth->ctrl(ctx, EVP_PKEY_CTRL_PEER_KEY, 1, peer); |
diff --git a/src/lib/libcrypto/evp/pmeth_gn.c b/src/lib/libcrypto/evp/pmeth_gn.c index 9eb10d4874..29f533625a 100644 --- a/src/lib/libcrypto/evp/pmeth_gn.c +++ b/src/lib/libcrypto/evp/pmeth_gn.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: pmeth_gn.c,v 1.4 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: pmeth_gn.c,v 1.5 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project 2006. | 3 | * project 2006. |
| 4 | */ | 4 | */ |
| @@ -222,7 +222,6 @@ EVP_PKEY_new_mac_key(int type, ENGINE *e, const unsigned char *key, int keylen) | |||
| 222 | goto merr; | 222 | goto merr; |
| 223 | 223 | ||
| 224 | merr: | 224 | merr: |
| 225 | if (mac_ctx) | 225 | EVP_PKEY_CTX_free(mac_ctx); |
| 226 | EVP_PKEY_CTX_free(mac_ctx); | ||
| 227 | return mac_key; | 226 | return mac_key; |
| 228 | } | 227 | } |
diff --git a/src/lib/libcrypto/evp/pmeth_lib.c b/src/lib/libcrypto/evp/pmeth_lib.c index c9c3444a13..12267a6d93 100644 --- a/src/lib/libcrypto/evp/pmeth_lib.c +++ b/src/lib/libcrypto/evp/pmeth_lib.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: pmeth_lib.c,v 1.8 2014/07/11 08:44:48 jsing Exp $ */ | 1 | /* $OpenBSD: pmeth_lib.c,v 1.9 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project 2006. | 3 | * project 2006. |
| 4 | */ | 4 | */ |
| @@ -371,10 +371,8 @@ EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx) | |||
| 371 | return; | 371 | return; |
| 372 | if (ctx->pmeth && ctx->pmeth->cleanup) | 372 | if (ctx->pmeth && ctx->pmeth->cleanup) |
| 373 | ctx->pmeth->cleanup(ctx); | 373 | ctx->pmeth->cleanup(ctx); |
| 374 | if (ctx->pkey) | 374 | EVP_PKEY_free(ctx->pkey); |
| 375 | EVP_PKEY_free(ctx->pkey); | 375 | EVP_PKEY_free(ctx->peerkey); |
| 376 | if (ctx->peerkey) | ||
| 377 | EVP_PKEY_free(ctx->peerkey); | ||
| 378 | #ifndef OPENSSL_NO_ENGINE | 376 | #ifndef OPENSSL_NO_ENGINE |
| 379 | if (ctx->engine) | 377 | if (ctx->engine) |
| 380 | /* The EVP_PKEY_CTX we used belongs to an ENGINE, release the | 378 | /* The EVP_PKEY_CTX we used belongs to an ENGINE, release the |
diff --git a/src/lib/libcrypto/pem/pem_pk8.c b/src/lib/libcrypto/pem/pem_pk8.c index dafbd13814..8d7ac4a954 100644 --- a/src/lib/libcrypto/pem/pem_pk8.c +++ b/src/lib/libcrypto/pem/pem_pk8.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: pem_pk8.c,v 1.7 2014/07/11 08:44:49 jsing Exp $ */ | 1 | /* $OpenBSD: pem_pk8.c,v 1.8 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -184,8 +184,7 @@ d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u) | |||
| 184 | if (!ret) | 184 | if (!ret) |
| 185 | return NULL; | 185 | return NULL; |
| 186 | if (x) { | 186 | if (x) { |
| 187 | if (*x) | 187 | EVP_PKEY_free(*x); |
| 188 | EVP_PKEY_free(*x); | ||
| 189 | *x = ret; | 188 | *x = ret; |
| 190 | } | 189 | } |
| 191 | return ret; | 190 | return ret; |
diff --git a/src/lib/libcrypto/pem/pem_pkey.c b/src/lib/libcrypto/pem/pem_pkey.c index 7e5e4f5771..a50742a63d 100644 --- a/src/lib/libcrypto/pem/pem_pkey.c +++ b/src/lib/libcrypto/pem/pem_pkey.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: pem_pkey.c,v 1.17 2014/07/11 08:44:49 jsing Exp $ */ | 1 | /* $OpenBSD: pem_pkey.c,v 1.18 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -99,8 +99,7 @@ PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u) | |||
| 99 | goto p8err; | 99 | goto p8err; |
| 100 | ret = EVP_PKCS82PKEY(p8inf); | 100 | ret = EVP_PKCS82PKEY(p8inf); |
| 101 | if (x) { | 101 | if (x) { |
| 102 | if (*x) | 102 | EVP_PKEY_free(*x); |
| 103 | EVP_PKEY_free((EVP_PKEY *)*x); | ||
| 104 | *x = ret; | 103 | *x = ret; |
| 105 | } | 104 | } |
| 106 | PKCS8_PRIV_KEY_INFO_free(p8inf); | 105 | PKCS8_PRIV_KEY_INFO_free(p8inf); |
| @@ -128,8 +127,7 @@ PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u) | |||
| 128 | goto p8err; | 127 | goto p8err; |
| 129 | ret = EVP_PKCS82PKEY(p8inf); | 128 | ret = EVP_PKCS82PKEY(p8inf); |
| 130 | if (x) { | 129 | if (x) { |
| 131 | if (*x) | 130 | EVP_PKEY_free(*x); |
| 132 | EVP_PKEY_free((EVP_PKEY *)*x); | ||
| 133 | *x = ret; | 131 | *x = ret; |
| 134 | } | 132 | } |
| 135 | PKCS8_PRIV_KEY_INFO_free(p8inf); | 133 | PKCS8_PRIV_KEY_INFO_free(p8inf); |
| @@ -194,8 +192,7 @@ PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x) | |||
| 194 | goto err; | 192 | goto err; |
| 195 | } | 193 | } |
| 196 | if (x) { | 194 | if (x) { |
| 197 | if (*x) | 195 | EVP_PKEY_free(*x); |
| 198 | EVP_PKEY_free((EVP_PKEY *)*x); | ||
| 199 | *x = ret; | 196 | *x = ret; |
| 200 | } | 197 | } |
| 201 | } | 198 | } |
diff --git a/src/lib/libcrypto/pem/pvkfmt.c b/src/lib/libcrypto/pem/pvkfmt.c index 32fcc181f7..ca7e908c29 100644 --- a/src/lib/libcrypto/pem/pvkfmt.c +++ b/src/lib/libcrypto/pem/pvkfmt.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: pvkfmt.c,v 1.10 2014/07/11 15:35:53 miod Exp $ */ | 1 | /* $OpenBSD: pvkfmt.c,v 1.11 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project 2005. | 3 | * project 2005. |
| 4 | */ | 4 | */ |
| @@ -349,12 +349,9 @@ b2i_dss(const unsigned char **in, unsigned int length, unsigned int bitlen, | |||
| 349 | 349 | ||
| 350 | memerr: | 350 | memerr: |
| 351 | PEMerr(PEM_F_B2I_DSS, ERR_R_MALLOC_FAILURE); | 351 | PEMerr(PEM_F_B2I_DSS, ERR_R_MALLOC_FAILURE); |
| 352 | if (dsa) | 352 | DSA_free(dsa); |
| 353 | DSA_free(dsa); | 353 | EVP_PKEY_free(ret); |
| 354 | if (ret) | 354 | BN_CTX_free(ctx); |
| 355 | EVP_PKEY_free(ret); | ||
| 356 | if (ctx) | ||
| 357 | BN_CTX_free(ctx); | ||
| 358 | return NULL; | 355 | return NULL; |
| 359 | } | 356 | } |
| 360 | 357 | ||
| @@ -402,10 +399,8 @@ b2i_rsa(const unsigned char **in, unsigned int length, unsigned int bitlen, | |||
| 402 | 399 | ||
| 403 | memerr: | 400 | memerr: |
| 404 | PEMerr(PEM_F_B2I_RSA, ERR_R_MALLOC_FAILURE); | 401 | PEMerr(PEM_F_B2I_RSA, ERR_R_MALLOC_FAILURE); |
| 405 | if (rsa) | 402 | RSA_free(rsa); |
| 406 | RSA_free(rsa); | 403 | EVP_PKEY_free(ret); |
| 407 | if (ret) | ||
| 408 | EVP_PKEY_free(ret); | ||
| 409 | return NULL; | 404 | return NULL; |
| 410 | } | 405 | } |
| 411 | 406 | ||
diff --git a/src/lib/libcrypto/pkcs12/p12_key.c b/src/lib/libcrypto/pkcs12/p12_key.c index 1f7583084e..0357c2bfa2 100644 --- a/src/lib/libcrypto/pkcs12/p12_key.c +++ b/src/lib/libcrypto/pkcs12/p12_key.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: p12_key.c,v 1.20 2014/07/11 08:44:49 jsing Exp $ */ | 1 | /* $OpenBSD: p12_key.c,v 1.21 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project 1999. | 3 | * project 1999. |
| 4 | */ | 4 | */ |
| @@ -195,12 +195,12 @@ err: | |||
| 195 | PKCS12err(PKCS12_F_PKCS12_KEY_GEN_UNI, ERR_R_MALLOC_FAILURE); | 195 | PKCS12err(PKCS12_F_PKCS12_KEY_GEN_UNI, ERR_R_MALLOC_FAILURE); |
| 196 | 196 | ||
| 197 | end: | 197 | end: |
| 198 | free (Ai); | 198 | free(Ai); |
| 199 | free (B); | 199 | free(B); |
| 200 | free (D); | 200 | free(D); |
| 201 | free (I); | 201 | free(I); |
| 202 | BN_free (Ij); | 202 | BN_free(Ij); |
| 203 | BN_free (Bpl1); | 203 | BN_free(Bpl1); |
| 204 | EVP_MD_CTX_cleanup(&ctx); | 204 | EVP_MD_CTX_cleanup(&ctx); |
| 205 | return ret; | 205 | return ret; |
| 206 | } | 206 | } |
diff --git a/src/lib/libcrypto/pkcs7/pk7_doit.c b/src/lib/libcrypto/pkcs7/pk7_doit.c index 4556949456..cc6fd97b9d 100644 --- a/src/lib/libcrypto/pkcs7/pk7_doit.c +++ b/src/lib/libcrypto/pkcs7/pk7_doit.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: pk7_doit.c,v 1.27 2014/07/11 08:44:49 jsing Exp $ */ | 1 | /* $OpenBSD: pk7_doit.c,v 1.28 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -184,10 +184,8 @@ pkcs7_encode_rinfo(PKCS7_RECIP_INFO *ri, unsigned char *key, int keylen) | |||
| 184 | ret = 1; | 184 | ret = 1; |
| 185 | 185 | ||
| 186 | err: | 186 | err: |
| 187 | if (pkey) | 187 | EVP_PKEY_free(pkey); |
| 188 | EVP_PKEY_free(pkey); | 188 | EVP_PKEY_CTX_free(pctx); |
| 189 | if (pctx) | ||
| 190 | EVP_PKEY_CTX_free(pctx); | ||
| 191 | free(ek); | 189 | free(ek); |
| 192 | return ret; | 190 | return ret; |
| 193 | } | 191 | } |
| @@ -244,8 +242,7 @@ pkcs7_decrypt_rinfo(unsigned char **pek, int *peklen, PKCS7_RECIP_INFO *ri, | |||
| 244 | *peklen = eklen; | 242 | *peklen = eklen; |
| 245 | 243 | ||
| 246 | err: | 244 | err: |
| 247 | if (pctx) | 245 | EVP_PKEY_CTX_free(pctx); |
| 248 | EVP_PKEY_CTX_free(pctx); | ||
| 249 | if (!ret && ek) | 246 | if (!ret && ek) |
| 250 | free(ek); | 247 | free(ek); |
| 251 | 248 | ||
diff --git a/src/lib/libcrypto/pkcs7/pk7_lib.c b/src/lib/libcrypto/pkcs7/pk7_lib.c index 699f5df394..27370800c9 100644 --- a/src/lib/libcrypto/pkcs7/pk7_lib.c +++ b/src/lib/libcrypto/pkcs7/pk7_lib.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: pk7_lib.c,v 1.13 2014/07/11 08:44:49 jsing Exp $ */ | 1 | /* $OpenBSD: pk7_lib.c,v 1.14 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -575,8 +575,7 @@ PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509) | |||
| 575 | return 1; | 575 | return 1; |
| 576 | 576 | ||
| 577 | err: | 577 | err: |
| 578 | if (pkey) | 578 | EVP_PKEY_free(pkey); |
| 579 | EVP_PKEY_free(pkey); | ||
| 580 | return 0; | 579 | return 0; |
| 581 | } | 580 | } |
| 582 | 581 | ||
diff --git a/src/lib/libcrypto/rsa/rsa.h b/src/lib/libcrypto/rsa/rsa.h index d15d1f1c97..8139db0b7d 100644 --- a/src/lib/libcrypto/rsa/rsa.h +++ b/src/lib/libcrypto/rsa/rsa.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: rsa.h,v 1.25 2014/07/10 22:45:57 jsing Exp $ */ | 1 | /* $OpenBSD: rsa.h,v 1.26 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -287,7 +287,7 @@ int RSA_public_decrypt(int flen, const unsigned char *from, | |||
| 287 | unsigned char *to, RSA *rsa, int padding); | 287 | unsigned char *to, RSA *rsa, int padding); |
| 288 | int RSA_private_decrypt(int flen, const unsigned char *from, | 288 | int RSA_private_decrypt(int flen, const unsigned char *from, |
| 289 | unsigned char *to, RSA *rsa, int padding); | 289 | unsigned char *to, RSA *rsa, int padding); |
| 290 | void RSA_free (RSA *r); | 290 | void RSA_free(RSA *r); |
| 291 | /* "up" the RSA object's reference count */ | 291 | /* "up" the RSA object's reference count */ |
| 292 | int RSA_up_ref(RSA *r); | 292 | int RSA_up_ref(RSA *r); |
| 293 | 293 | ||
diff --git a/src/lib/libcrypto/rsa/rsa_saos.c b/src/lib/libcrypto/rsa/rsa_saos.c index 47b2a4e95f..adf459ee6d 100644 --- a/src/lib/libcrypto/rsa/rsa_saos.c +++ b/src/lib/libcrypto/rsa/rsa_saos.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: rsa_saos.c,v 1.15 2014/07/11 08:44:49 jsing Exp $ */ | 1 | /* $OpenBSD: rsa_saos.c,v 1.16 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -140,8 +140,7 @@ RSA_verify_ASN1_OCTET_STRING(int dtype, const unsigned char *m, | |||
| 140 | } else | 140 | } else |
| 141 | ret = 1; | 141 | ret = 1; |
| 142 | err: | 142 | err: |
| 143 | if (sig != NULL) | 143 | M_ASN1_OCTET_STRING_free(sig); |
| 144 | M_ASN1_OCTET_STRING_free(sig); | ||
| 145 | if (s != NULL) { | 144 | if (s != NULL) { |
| 146 | OPENSSL_cleanse(s, (unsigned int)siglen); | 145 | OPENSSL_cleanse(s, (unsigned int)siglen); |
| 147 | free(s); | 146 | free(s); |
diff --git a/src/lib/libcrypto/ts/ts_rsp_sign.c b/src/lib/libcrypto/ts/ts_rsp_sign.c index 9d20e66f9a..27659e8f45 100644 --- a/src/lib/libcrypto/ts/ts_rsp_sign.c +++ b/src/lib/libcrypto/ts/ts_rsp_sign.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ts_rsp_sign.c,v 1.17 2014/07/11 08:44:49 jsing Exp $ */ | 1 | /* $OpenBSD: ts_rsp_sign.c,v 1.18 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Written by Zoltan Glozik (zglozik@stones.com) for the OpenSSL | 2 | /* Written by Zoltan Glozik (zglozik@stones.com) for the OpenSSL |
| 3 | * project 2002. | 3 | * project 2002. |
| 4 | */ | 4 | */ |
| @@ -195,8 +195,7 @@ TS_RESP_CTX_set_signer_cert(TS_RESP_CTX *ctx, X509 *signer) | |||
| 195 | int | 195 | int |
| 196 | TS_RESP_CTX_set_signer_key(TS_RESP_CTX *ctx, EVP_PKEY *key) | 196 | TS_RESP_CTX_set_signer_key(TS_RESP_CTX *ctx, EVP_PKEY *key) |
| 197 | { | 197 | { |
| 198 | if (ctx->signer_key) | 198 | EVP_PKEY_free(ctx->signer_key); |
| 199 | EVP_PKEY_free(ctx->signer_key); | ||
| 200 | ctx->signer_key = key; | 199 | ctx->signer_key = key; |
| 201 | CRYPTO_add(&ctx->signer_key->references, +1, CRYPTO_LOCK_EVP_PKEY); | 200 | CRYPTO_add(&ctx->signer_key->references, +1, CRYPTO_LOCK_EVP_PKEY); |
| 202 | 201 | ||
diff --git a/src/lib/libcrypto/x509/x509_cmp.c b/src/lib/libcrypto/x509/x509_cmp.c index e26866dc80..b63faaad2c 100644 --- a/src/lib/libcrypto/x509/x509_cmp.c +++ b/src/lib/libcrypto/x509/x509_cmp.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: x509_cmp.c,v 1.22 2014/07/11 08:44:49 jsing Exp $ */ | 1 | /* $OpenBSD: x509_cmp.c,v 1.23 2014/07/12 16:03:37 miod Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -358,8 +358,7 @@ X509_check_private_key(X509 *x, EVP_PKEY *k) | |||
| 358 | X509err(X509_F_X509_CHECK_PRIVATE_KEY, | 358 | X509err(X509_F_X509_CHECK_PRIVATE_KEY, |
| 359 | X509_R_UNKNOWN_KEY_TYPE); | 359 | X509_R_UNKNOWN_KEY_TYPE); |
| 360 | } | 360 | } |
| 361 | if (xk) | 361 | EVP_PKEY_free(xk); |
| 362 | EVP_PKEY_free(xk); | ||
| 363 | if (ret > 0) | 362 | if (ret > 0) |
| 364 | return 1; | 363 | return 1; |
| 365 | return 0; | 364 | return 0; |
