diff options
Diffstat (limited to 'src/lib/libcrypto/pem/pem_pkey.c')
| -rw-r--r-- | src/lib/libcrypto/pem/pem_pkey.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/lib/libcrypto/pem/pem_pkey.c b/src/lib/libcrypto/pem/pem_pkey.c index d96ecf6940..f77c949e87 100644 --- a/src/lib/libcrypto/pem/pem_pkey.c +++ b/src/lib/libcrypto/pem/pem_pkey.c | |||
| @@ -87,6 +87,10 @@ EVP_PKEY *PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, vo | |||
| 87 | p8inf=d2i_PKCS8_PRIV_KEY_INFO(NULL, &p, len); | 87 | p8inf=d2i_PKCS8_PRIV_KEY_INFO(NULL, &p, len); |
| 88 | if(!p8inf) goto p8err; | 88 | if(!p8inf) goto p8err; |
| 89 | ret = EVP_PKCS82PKEY(p8inf); | 89 | ret = EVP_PKCS82PKEY(p8inf); |
| 90 | if(x) { | ||
| 91 | if(*x) EVP_PKEY_free((EVP_PKEY *)*x); | ||
| 92 | *x = ret; | ||
| 93 | } | ||
| 90 | PKCS8_PRIV_KEY_INFO_free(p8inf); | 94 | PKCS8_PRIV_KEY_INFO_free(p8inf); |
| 91 | } else if (strcmp(nm,PEM_STRING_PKCS8) == 0) { | 95 | } else if (strcmp(nm,PEM_STRING_PKCS8) == 0) { |
| 92 | PKCS8_PRIV_KEY_INFO *p8inf; | 96 | PKCS8_PRIV_KEY_INFO *p8inf; |
