diff options
author | miod <> | 2014-07-12 16:03:37 +0000 |
---|---|---|
committer | miod <> | 2014-07-12 16:03:37 +0000 |
commit | 1ae7466a2fdd60df6484d8d132d70a044fd58c92 (patch) | |
tree | b756e0522f06b8c8ef257885370d0ada8f818fa8 /src/lib | |
parent | 3c4c98fca81949fb441815860d40ad66626df65d (diff) | |
download | openbsd-1ae7466a2fdd60df6484d8d132d70a044fd58c92.tar.gz openbsd-1ae7466a2fdd60df6484d8d132d70a044fd58c92.tar.bz2 openbsd-1ae7466a2fdd60df6484d8d132d70a044fd58c92.zip |
if (x) FOO_free(x) -> FOO_free(x).
Improves readability, keeps the code smaller so that it is warmer in your
cache.
review & ok deraadt@
Diffstat (limited to 'src/lib')
128 files changed, 638 insertions, 1098 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; |
diff --git a/src/lib/libssl/src/crypto/asn1/a_object.c b/src/lib/libssl/src/crypto/asn1/a_object.c index 551aece6ad..863aa6a226 100644 --- a/src/lib/libssl/src/crypto/asn1/a_object.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/asn1/asn1_par.c b/src/lib/libssl/src/crypto/asn1/asn1_par.c index c6f95c42ab..f5e3a8b529 100644 --- a/src/lib/libssl/src/crypto/asn1/asn1_par.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/asn1/evp_asn1.c b/src/lib/libssl/src/crypto/asn1/evp_asn1.c index 199c12f9a4..5e21f3c8ae 100644 --- a/src/lib/libssl/src/crypto/asn1/evp_asn1.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/asn1/x_pkey.c b/src/lib/libssl/src/crypto/asn1/x_pkey.c index a5134bc6a2..d454afb72b 100644 --- a/src/lib/libssl/src/crypto/asn1/x_pkey.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/asn1/x_pubkey.c b/src/lib/libssl/src/crypto/asn1/x_pubkey.c index 87cb25bb50..56cc63059a 100644 --- a/src/lib/libssl/src/crypto/asn1/x_pubkey.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/bn/bn_blind.c b/src/lib/libssl/src/crypto/bn/bn_blind.c index 5f559da067..c842f76c6f 100644 --- a/src/lib/libssl/src/crypto/bn/bn_blind.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/bn/bn_lib.c b/src/lib/libssl/src/crypto/bn/bn_lib.c index 4ee9b2bbde..d0cb49cd1e 100644 --- a/src/lib/libssl/src/crypto/bn/bn_lib.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/bn/bn_mod.c b/src/lib/libssl/src/crypto/bn/bn_mod.c index a503ff3b1b..67bd3541b0 100644 --- a/src/lib/libssl/src/crypto/bn/bn_mod.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/bn/bn_prime.c b/src/lib/libssl/src/crypto/bn/bn_prime.c index db786a63ef..27468ceb93 100644 --- a/src/lib/libssl/src/crypto/bn/bn_prime.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/bn/bn_print.c b/src/lib/libssl/src/crypto/bn/bn_print.c index ccdae5ae09..4920705a5b 100644 --- a/src/lib/libssl/src/crypto/bn/bn_print.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/cmac/cm_ameth.c b/src/lib/libssl/src/crypto/cmac/cm_ameth.c index 39d8ad3aa8..e7e7fe0f80 100644 --- a/src/lib/libssl/src/crypto/cmac/cm_ameth.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/cms/cms_asn1.c b/src/lib/libssl/src/crypto/cms/cms_asn1.c index a75fa26137..fbdac5b1ba 100644 --- a/src/lib/libssl/src/crypto/cms/cms_asn1.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/cms/cms_env.c b/src/lib/libssl/src/crypto/cms/cms_env.c index 66ec1a9343..19c86b9550 100644 --- a/src/lib/libssl/src/crypto/cms/cms_env.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/cms/cms_sd.c b/src/lib/libssl/src/crypto/cms/cms_sd.c index 7e490c0988..70ad897bda 100644 --- a/src/lib/libssl/src/crypto/cms/cms_sd.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/dh/dh_ameth.c b/src/lib/libssl/src/crypto/dh/dh_ameth.c index 91178a92b0..729c996a1b 100644 --- a/src/lib/libssl/src/crypto/dh/dh_ameth.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/dh/dh_check.c b/src/lib/libssl/src/crypto/dh/dh_check.c index 01b9531a44..0f6c50b055 100644 --- a/src/lib/libssl/src/crypto/dh/dh_check.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/dh/dh_key.c b/src/lib/libssl/src/crypto/dh/dh_key.c index 6d90816122..132ba5cfa4 100644 --- a/src/lib/libssl/src/crypto/dh/dh_key.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/dh/dh_lib.c b/src/lib/libssl/src/crypto/dh/dh_lib.c index 0a956e5416..c438f387c0 100644 --- a/src/lib/libssl/src/crypto/dh/dh_lib.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/dsa/dsa.h b/src/lib/libssl/src/crypto/dsa/dsa.h index c1264ac325..bd7b26070d 100644 --- a/src/lib/libssl/src/crypto/dsa/dsa.h +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/dsa/dsa_ameth.c b/src/lib/libssl/src/crypto/dsa/dsa_ameth.c index 73c58ec94c..7da4ac5695 100644 --- a/src/lib/libssl/src/crypto/dsa/dsa_ameth.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/dsa/dsa_gen.c b/src/lib/libssl/src/crypto/dsa/dsa_gen.c index d41e7562e1..a3d07b901a 100644 --- a/src/lib/libssl/src/crypto/dsa/dsa_gen.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/dsa/dsa_key.c b/src/lib/libssl/src/crypto/dsa/dsa_key.c index 4573ecbcce..4dc28dbb90 100644 --- a/src/lib/libssl/src/crypto/dsa/dsa_key.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/dsa/dsa_lib.c b/src/lib/libssl/src/crypto/dsa/dsa_lib.c index 97307134cd..1cfd6ce6b8 100644 --- a/src/lib/libssl/src/crypto/dsa/dsa_lib.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/dsa/dsa_ossl.c b/src/lib/libssl/src/crypto/dsa/dsa_ossl.c index 5bff836c50..e372853063 100644 --- a/src/lib/libssl/src/crypto/dsa/dsa_ossl.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/dsa/dsa_sign.c b/src/lib/libssl/src/crypto/dsa/dsa_sign.c index efeb35477c..80e002c4a7 100644 --- a/src/lib/libssl/src/crypto/dsa/dsa_sign.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ec/ec2_mult.c b/src/lib/libssl/src/crypto/ec/ec2_mult.c index 6c3a759dc8..c74571f88c 100644 --- a/src/lib/libssl/src/crypto/ec/ec2_mult.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ec/ec2_oct.c b/src/lib/libssl/src/crypto/ec/ec2_oct.c index 5150423b99..3b8039af6e 100644 --- a/src/lib/libssl/src/crypto/ec/ec2_oct.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ec/ec2_smpl.c b/src/lib/libssl/src/crypto/ec/ec2_smpl.c index 001ffcc077..0031a161c7 100644 --- a/src/lib/libssl/src/crypto/ec/ec2_smpl.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ec/ec_ameth.c b/src/lib/libssl/src/crypto/ec/ec_ameth.c index 93e305b71a..c201815621 100644 --- a/src/lib/libssl/src/crypto/ec/ec_ameth.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ec/ec_asn1.c b/src/lib/libssl/src/crypto/ec/ec_asn1.c index ef87b599f2..c54f6593d5 100644 --- a/src/lib/libssl/src/crypto/ec/ec_asn1.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ec/ec_check.c b/src/lib/libssl/src/crypto/ec/ec_check.c index 585590514f..779e03cc2b 100644 --- a/src/lib/libssl/src/crypto/ec/ec_check.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ec/ec_curve.c b/src/lib/libssl/src/crypto/ec/ec_curve.c index baac8c7156..9d36d0bf22 100644 --- a/src/lib/libssl/src/crypto/ec/ec_curve.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ec/ec_key.c b/src/lib/libssl/src/crypto/ec/ec_key.c index 7067a949da..1154c4dbf5 100644 --- a/src/lib/libssl/src/crypto/ec/ec_key.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ec/ec_lib.c b/src/lib/libssl/src/crypto/ec/ec_lib.c index 3d8b96eb1f..47ccc614d1 100644 --- a/src/lib/libssl/src/crypto/ec/ec_lib.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ec/ec_mult.c b/src/lib/libssl/src/crypto/ec/ec_mult.c index b6f74a1b09..4e49ce4f7b 100644 --- a/src/lib/libssl/src/crypto/ec/ec_mult.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ec/ec_pmeth.c b/src/lib/libssl/src/crypto/ec/ec_pmeth.c index 7ba1d50d7f..07933dc5fd 100644 --- a/src/lib/libssl/src/crypto/ec/ec_pmeth.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ec/eck_prn.c b/src/lib/libssl/src/crypto/ec/eck_prn.c index b0c8bcd22a..aa13d8b08c 100644 --- a/src/lib/libssl/src/crypto/ec/eck_prn.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ec/ecp_mont.c b/src/lib/libssl/src/crypto/ec/ecp_mont.c index ffbce81d4c..af8014ed38 100644 --- a/src/lib/libssl/src/crypto/ec/ecp_mont.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ec/ecp_nist.c b/src/lib/libssl/src/crypto/ec/ecp_nist.c index d49d1735f3..a33f9d9e39 100644 --- a/src/lib/libssl/src/crypto/ec/ecp_nist.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ec/ecp_nistp224.c b/src/lib/libssl/src/crypto/ec/ecp_nistp224.c index c466d2db83..ed0bad2a72 100644 --- a/src/lib/libssl/src/crypto/ec/ecp_nistp224.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ec/ecp_nistp256.c b/src/lib/libssl/src/crypto/ec/ecp_nistp256.c index 7b122e6307..6905b614bc 100644 --- a/src/lib/libssl/src/crypto/ec/ecp_nistp256.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ec/ecp_nistp521.c b/src/lib/libssl/src/crypto/ec/ecp_nistp521.c index cec0a3b470..c9313ada8e 100644 --- a/src/lib/libssl/src/crypto/ec/ecp_nistp521.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ec/ecp_oct.c b/src/lib/libssl/src/crypto/ec/ecp_oct.c index 2f2920d70d..d2402ee0d8 100644 --- a/src/lib/libssl/src/crypto/ec/ecp_oct.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ec/ecp_smpl.c b/src/lib/libssl/src/crypto/ec/ecp_smpl.c index 5ba9a925d6..dabc5af899 100644 --- a/src/lib/libssl/src/crypto/ec/ecp_smpl.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ecdh/ech_ossl.c b/src/lib/libssl/src/crypto/ecdh/ech_ossl.c index d82ace3670..ee130edeee 100644 --- a/src/lib/libssl/src/crypto/ecdh/ech_ossl.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ecdsa/ecs_ossl.c b/src/lib/libssl/src/crypto/ecdsa/ecs_ossl.c index e2c4b1d6d1..0dde5386ff 100644 --- a/src/lib/libssl/src/crypto/ecdsa/ecs_ossl.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/engine/eng_rsax.c b/src/lib/libssl/src/crypto/engine/eng_rsax.c index daeb7e6ebb..358dac2088 100644 --- a/src/lib/libssl/src/crypto/engine/eng_rsax.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/evp/digest.c b/src/lib/libssl/src/crypto/evp/digest.c index 9a4b1a6293..d582d7954e 100644 --- a/src/lib/libssl/src/crypto/evp/digest.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/evp/evp_pkey.c b/src/lib/libssl/src/crypto/evp/evp_pkey.c index cf7a39be7b..38a324558f 100644 --- a/src/lib/libssl/src/crypto/evp/evp_pkey.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/evp/pmeth_fn.c b/src/lib/libssl/src/crypto/evp/pmeth_fn.c index c4a53b0d5f..4cf18a0be1 100644 --- a/src/lib/libssl/src/crypto/evp/pmeth_fn.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/evp/pmeth_gn.c b/src/lib/libssl/src/crypto/evp/pmeth_gn.c index 9eb10d4874..29f533625a 100644 --- a/src/lib/libssl/src/crypto/evp/pmeth_gn.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/evp/pmeth_lib.c b/src/lib/libssl/src/crypto/evp/pmeth_lib.c index c9c3444a13..12267a6d93 100644 --- a/src/lib/libssl/src/crypto/evp/pmeth_lib.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/pem/pem_pk8.c b/src/lib/libssl/src/crypto/pem/pem_pk8.c index dafbd13814..8d7ac4a954 100644 --- a/src/lib/libssl/src/crypto/pem/pem_pk8.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/pem/pem_pkey.c b/src/lib/libssl/src/crypto/pem/pem_pkey.c index 7e5e4f5771..a50742a63d 100644 --- a/src/lib/libssl/src/crypto/pem/pem_pkey.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/pem/pvkfmt.c b/src/lib/libssl/src/crypto/pem/pvkfmt.c index 32fcc181f7..ca7e908c29 100644 --- a/src/lib/libssl/src/crypto/pem/pvkfmt.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/pkcs12/p12_key.c b/src/lib/libssl/src/crypto/pkcs12/p12_key.c index 1f7583084e..0357c2bfa2 100644 --- a/src/lib/libssl/src/crypto/pkcs12/p12_key.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/pkcs7/pk7_doit.c b/src/lib/libssl/src/crypto/pkcs7/pk7_doit.c index 4556949456..cc6fd97b9d 100644 --- a/src/lib/libssl/src/crypto/pkcs7/pk7_doit.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/pkcs7/pk7_lib.c b/src/lib/libssl/src/crypto/pkcs7/pk7_lib.c index 699f5df394..27370800c9 100644 --- a/src/lib/libssl/src/crypto/pkcs7/pk7_lib.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/rsa/rsa.h b/src/lib/libssl/src/crypto/rsa/rsa.h index d15d1f1c97..8139db0b7d 100644 --- a/src/lib/libssl/src/crypto/rsa/rsa.h +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/rsa/rsa_saos.c b/src/lib/libssl/src/crypto/rsa/rsa_saos.c index 47b2a4e95f..adf459ee6d 100644 --- a/src/lib/libssl/src/crypto/rsa/rsa_saos.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/ts/ts_rsp_sign.c b/src/lib/libssl/src/crypto/ts/ts_rsp_sign.c index 9d20e66f9a..27659e8f45 100644 --- a/src/lib/libssl/src/crypto/ts/ts_rsp_sign.c +++ b/src/lib/libssl/src/crypto/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/libssl/src/crypto/x509/x509_cmp.c b/src/lib/libssl/src/crypto/x509/x509_cmp.c index e26866dc80..b63faaad2c 100644 --- a/src/lib/libssl/src/crypto/x509/x509_cmp.c +++ b/src/lib/libssl/src/crypto/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; |
diff --git a/src/lib/libssl/src/ssl/ssl_lib.c b/src/lib/libssl/src/ssl/ssl_lib.c index beb8089475..db310de881 100644 --- a/src/lib/libssl/src/ssl/ssl_lib.c +++ b/src/lib/libssl/src/ssl/ssl_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_lib.c,v 1.75 2014/07/12 13:11:53 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_lib.c,v 1.76 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 | * |
@@ -355,8 +355,7 @@ err: | |||
355 | if (s != NULL) { | 355 | if (s != NULL) { |
356 | if (s->cert != NULL) | 356 | if (s->cert != NULL) |
357 | ssl_cert_free(s->cert); | 357 | ssl_cert_free(s->cert); |
358 | if (s->ctx != NULL) | 358 | SSL_CTX_free(s->ctx); /* decrement reference count */ |
359 | SSL_CTX_free(s->ctx); /* decrement reference count */ | ||
360 | free(s); | 359 | free(s); |
361 | } | 360 | } |
362 | SSLerr(SSL_F_SSL_NEW, | 361 | SSLerr(SSL_F_SSL_NEW, |
@@ -528,8 +527,7 @@ SSL_free(SSL *s) | |||
528 | /* Free up if allocated */ | 527 | /* Free up if allocated */ |
529 | 528 | ||
530 | free(s->tlsext_hostname); | 529 | free(s->tlsext_hostname); |
531 | if (s->initial_ctx) | 530 | SSL_CTX_free(s->initial_ctx); |
532 | SSL_CTX_free(s->initial_ctx); | ||
533 | free(s->tlsext_ecpointformatlist); | 531 | free(s->tlsext_ecpointformatlist); |
534 | free(s->tlsext_ellipticcurvelist); | 532 | free(s->tlsext_ellipticcurvelist); |
535 | if (s->tlsext_ocsp_exts) | 533 | if (s->tlsext_ocsp_exts) |
@@ -545,8 +543,7 @@ SSL_free(SSL *s) | |||
545 | if (s->method != NULL) | 543 | if (s->method != NULL) |
546 | s->method->ssl_free(s); | 544 | s->method->ssl_free(s); |
547 | 545 | ||
548 | if (s->ctx) | 546 | SSL_CTX_free(s->ctx); |
549 | SSL_CTX_free(s->ctx); | ||
550 | 547 | ||
551 | 548 | ||
552 | #ifndef OPENSSL_NO_NEXTPROTONEG | 549 | #ifndef OPENSSL_NO_NEXTPROTONEG |
@@ -1831,8 +1828,7 @@ err: | |||
1831 | SSLerr(SSL_F_SSL_CTX_NEW, | 1828 | SSLerr(SSL_F_SSL_CTX_NEW, |
1832 | ERR_R_MALLOC_FAILURE); | 1829 | ERR_R_MALLOC_FAILURE); |
1833 | err2: | 1830 | err2: |
1834 | if (ret != NULL) | 1831 | SSL_CTX_free(ret); |
1835 | SSL_CTX_free(ret); | ||
1836 | return (NULL); | 1832 | return (NULL); |
1837 | } | 1833 | } |
1838 | 1834 | ||
@@ -2725,8 +2721,7 @@ SSL_set_SSL_CTX(SSL *ssl, SSL_CTX* ctx) | |||
2725 | ssl_cert_free(ssl->cert); | 2721 | ssl_cert_free(ssl->cert); |
2726 | ssl->cert = ssl_cert_dup(ctx->cert); | 2722 | ssl->cert = ssl_cert_dup(ctx->cert); |
2727 | CRYPTO_add(&ctx->references, 1, CRYPTO_LOCK_SSL_CTX); | 2723 | CRYPTO_add(&ctx->references, 1, CRYPTO_LOCK_SSL_CTX); |
2728 | if (ssl->ctx != NULL) | 2724 | SSL_CTX_free(ssl->ctx); /* decrement reference count */ |
2729 | SSL_CTX_free(ssl->ctx); /* decrement reference count */ | ||
2730 | ssl->ctx = ctx; | 2725 | ssl->ctx = ctx; |
2731 | return (ssl->ctx); | 2726 | return (ssl->ctx); |
2732 | } | 2727 | } |
diff --git a/src/lib/libssl/src/ssl/ssl_rsa.c b/src/lib/libssl/src/ssl/ssl_rsa.c index c1d24cad52..d4d14bad35 100644 --- a/src/lib/libssl/src/ssl/ssl_rsa.c +++ b/src/lib/libssl/src/ssl/ssl_rsa.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_rsa.c,v 1.15 2014/06/22 19:09:37 guenther Exp $ */ | 1 | /* $OpenBSD: ssl_rsa.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 | * |
@@ -201,8 +201,7 @@ ssl_set_pkey(CERT *c, EVP_PKEY *pkey) | |||
201 | } | 201 | } |
202 | } | 202 | } |
203 | 203 | ||
204 | if (c->pkeys[i].privatekey != NULL) | 204 | EVP_PKEY_free(c->pkeys[i].privatekey); |
205 | EVP_PKEY_free(c->pkeys[i].privatekey); | ||
206 | CRYPTO_add(&pkey->references, 1, CRYPTO_LOCK_EVP_PKEY); | 205 | CRYPTO_add(&pkey->references, 1, CRYPTO_LOCK_EVP_PKEY); |
207 | c->pkeys[i].privatekey = pkey; | 206 | c->pkeys[i].privatekey = pkey; |
208 | c->key = &(c->pkeys[i]); | 207 | c->key = &(c->pkeys[i]); |
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c index beb8089475..db310de881 100644 --- a/src/lib/libssl/ssl_lib.c +++ b/src/lib/libssl/ssl_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_lib.c,v 1.75 2014/07/12 13:11:53 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_lib.c,v 1.76 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 | * |
@@ -355,8 +355,7 @@ err: | |||
355 | if (s != NULL) { | 355 | if (s != NULL) { |
356 | if (s->cert != NULL) | 356 | if (s->cert != NULL) |
357 | ssl_cert_free(s->cert); | 357 | ssl_cert_free(s->cert); |
358 | if (s->ctx != NULL) | 358 | SSL_CTX_free(s->ctx); /* decrement reference count */ |
359 | SSL_CTX_free(s->ctx); /* decrement reference count */ | ||
360 | free(s); | 359 | free(s); |
361 | } | 360 | } |
362 | SSLerr(SSL_F_SSL_NEW, | 361 | SSLerr(SSL_F_SSL_NEW, |
@@ -528,8 +527,7 @@ SSL_free(SSL *s) | |||
528 | /* Free up if allocated */ | 527 | /* Free up if allocated */ |
529 | 528 | ||
530 | free(s->tlsext_hostname); | 529 | free(s->tlsext_hostname); |
531 | if (s->initial_ctx) | 530 | SSL_CTX_free(s->initial_ctx); |
532 | SSL_CTX_free(s->initial_ctx); | ||
533 | free(s->tlsext_ecpointformatlist); | 531 | free(s->tlsext_ecpointformatlist); |
534 | free(s->tlsext_ellipticcurvelist); | 532 | free(s->tlsext_ellipticcurvelist); |
535 | if (s->tlsext_ocsp_exts) | 533 | if (s->tlsext_ocsp_exts) |
@@ -545,8 +543,7 @@ SSL_free(SSL *s) | |||
545 | if (s->method != NULL) | 543 | if (s->method != NULL) |
546 | s->method->ssl_free(s); | 544 | s->method->ssl_free(s); |
547 | 545 | ||
548 | if (s->ctx) | 546 | SSL_CTX_free(s->ctx); |
549 | SSL_CTX_free(s->ctx); | ||
550 | 547 | ||
551 | 548 | ||
552 | #ifndef OPENSSL_NO_NEXTPROTONEG | 549 | #ifndef OPENSSL_NO_NEXTPROTONEG |
@@ -1831,8 +1828,7 @@ err: | |||
1831 | SSLerr(SSL_F_SSL_CTX_NEW, | 1828 | SSLerr(SSL_F_SSL_CTX_NEW, |
1832 | ERR_R_MALLOC_FAILURE); | 1829 | ERR_R_MALLOC_FAILURE); |
1833 | err2: | 1830 | err2: |
1834 | if (ret != NULL) | 1831 | SSL_CTX_free(ret); |
1835 | SSL_CTX_free(ret); | ||
1836 | return (NULL); | 1832 | return (NULL); |
1837 | } | 1833 | } |
1838 | 1834 | ||
@@ -2725,8 +2721,7 @@ SSL_set_SSL_CTX(SSL *ssl, SSL_CTX* ctx) | |||
2725 | ssl_cert_free(ssl->cert); | 2721 | ssl_cert_free(ssl->cert); |
2726 | ssl->cert = ssl_cert_dup(ctx->cert); | 2722 | ssl->cert = ssl_cert_dup(ctx->cert); |
2727 | CRYPTO_add(&ctx->references, 1, CRYPTO_LOCK_SSL_CTX); | 2723 | CRYPTO_add(&ctx->references, 1, CRYPTO_LOCK_SSL_CTX); |
2728 | if (ssl->ctx != NULL) | 2724 | SSL_CTX_free(ssl->ctx); /* decrement reference count */ |
2729 | SSL_CTX_free(ssl->ctx); /* decrement reference count */ | ||
2730 | ssl->ctx = ctx; | 2725 | ssl->ctx = ctx; |
2731 | return (ssl->ctx); | 2726 | return (ssl->ctx); |
2732 | } | 2727 | } |
diff --git a/src/lib/libssl/ssl_rsa.c b/src/lib/libssl/ssl_rsa.c index c1d24cad52..d4d14bad35 100644 --- a/src/lib/libssl/ssl_rsa.c +++ b/src/lib/libssl/ssl_rsa.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_rsa.c,v 1.15 2014/06/22 19:09:37 guenther Exp $ */ | 1 | /* $OpenBSD: ssl_rsa.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 | * |
@@ -201,8 +201,7 @@ ssl_set_pkey(CERT *c, EVP_PKEY *pkey) | |||
201 | } | 201 | } |
202 | } | 202 | } |
203 | 203 | ||
204 | if (c->pkeys[i].privatekey != NULL) | 204 | EVP_PKEY_free(c->pkeys[i].privatekey); |
205 | EVP_PKEY_free(c->pkeys[i].privatekey); | ||
206 | CRYPTO_add(&pkey->references, 1, CRYPTO_LOCK_EVP_PKEY); | 205 | CRYPTO_add(&pkey->references, 1, CRYPTO_LOCK_EVP_PKEY); |
207 | c->pkeys[i].privatekey = pkey; | 206 | c->pkeys[i].privatekey = pkey; |
208 | c->key = &(c->pkeys[i]); | 207 | c->key = &(c->pkeys[i]); |