summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/dsa/dsa_ameth.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/dsa/dsa_ameth.c')
-rw-r--r--src/lib/libcrypto/dsa/dsa_ameth.c18
1 files changed, 7 insertions, 11 deletions
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)
125err: 125err:
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)
275decerr: 274decerr:
276 DSAerr(DSA_F_DSA_PRIV_DECODE, EVP_R_DECODE_ERROR); 275 DSAerr(DSA_F_DSA_PRIV_DECODE, EVP_R_DECODE_ERROR);
277dsaerr: 276dsaerr:
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}