summaryrefslogtreecommitdiffstats
path: root/crypto/dsa
diff options
context:
space:
mode:
authorAdam Langley <agl@chromium.org>2013-02-21 17:11:55 -0500
committerBen Laurie <ben@links.org>2013-06-13 17:03:35 +0100
commita54a61e7a94466f4dc1d663a4297bca562d1a5ac (patch)
tree16d7babc8dd163e2cd3234f84d68a1c37296f515 /crypto/dsa
parentadb46dbc6dd7347750df2468c93e8c34bcb93a4b (diff)
Don't SEGFAULT when trying to export a public DSA key as a private key.
Diffstat (limited to 'crypto/dsa')
-rw-r--r--crypto/dsa/dsa_ameth.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/crypto/dsa/dsa_ameth.c b/crypto/dsa/dsa_ameth.c
index 376156ec5e..5f6e6f595f 100644
--- a/crypto/dsa/dsa_ameth.c
+++ b/crypto/dsa/dsa_ameth.c
@@ -307,6 +307,12 @@ static int dsa_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
unsigned char *dp = NULL;
int dplen;
+ if (!pkey->pkey.dsa->priv_key)
+ {
+ DSAerr(DSA_F_DSA_PRIV_ENCODE,DSA_R_MISSING_PARAMETERS);
+ goto err;
+ }
+
params = ASN1_STRING_new();
if (!params)