diff options
author | Adam Langley <agl@chromium.org> | 2013-02-21 17:11:55 -0500 |
---|---|---|
committer | Ben Laurie <ben@links.org> | 2013-06-13 17:03:35 +0100 |
commit | a54a61e7a94466f4dc1d663a4297bca562d1a5ac (patch) | |
tree | 16d7babc8dd163e2cd3234f84d68a1c37296f515 /crypto | |
parent | adb46dbc6dd7347750df2468c93e8c34bcb93a4b (diff) | |
download | openssl-a54a61e7a94466f4dc1d663a4297bca562d1a5ac.tar.gz |
Don't SEGFAULT when trying to export a public DSA key as a private key.
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/dsa/dsa_ameth.c | 6 |
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) |