Fix memory leak: free up ENGINE functional reference if digest is not
authorDr. Stephen Henson <steve@openssl.org>
Fri, 5 Mar 2010 13:35:06 +0000 (13:35 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Fri, 5 Mar 2010 13:35:06 +0000 (13:35 +0000)
found in an ENGINE.

crypto/evp/digest.c

index 6a8f39bef79117f674b9432953f984b9f20a47a2..10a36071f71bcc9dbed6fad92d4c86a03500853c 100644 (file)
@@ -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 */