summaryrefslogtreecommitdiffstats
path: root/crypto/evp
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2010-03-05 13:35:06 +0000
committerDr. Stephen Henson <steve@openssl.org>2010-03-05 13:35:06 +0000
commit1939f8370929280578f8daabf10c10b1fac6f0e0 (patch)
treef571df8363310163ab4eee10323f8f8a8cab9056 /crypto/evp
parentb7c114f0447519561fa87ba579fdc35b4496c4ca (diff)
Fix memory leak: free up ENGINE functional reference if digest is not
found in an ENGINE.
Diffstat (limited to 'crypto/evp')
-rw-r--r--crypto/evp/digest.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/crypto/evp/digest.c b/crypto/evp/digest.c
index 6a8f39bef7..10a36071f7 100644
--- a/crypto/evp/digest.c
+++ b/crypto/evp/digest.c
@@ -235,6 +235,7 @@ static int do_evp_md_engine(EVP_MD_CTX *ctx, const EVP_MD **ptype, ENGINE *impl)
{
/* Same comment from evp_enc.c */
EVPerr(EVP_F_DO_EVP_MD_ENGINE,EVP_R_INITIALIZATION_ERROR);
+ ENGINE_finish(impl);
return 0;
}
/* We'll use the ENGINE's private digest definition */