提交 0618b62c 编写于 作者: M Matt Caswell

Fix a mem leak in libssl

Make sure we free up any ENGINE references after we have finished using
them.

Fixes #11064
Reviewed-by: NRichard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/11070)
上级 06e62984
......@@ -5849,12 +5849,17 @@ const EVP_CIPHER *ssl_evp_cipher_fetch(OPENSSL_CTX *libctx,
const char *properties)
{
#ifndef OPENSSL_NO_ENGINE
ENGINE *eng;
/*
* If there is an Engine available for this cipher we use the "implicit"
* form to ensure we use that engine later.
*/
if (ENGINE_get_cipher_engine(nid) != NULL)
eng = ENGINE_get_cipher_engine(nid);
if (eng != NULL) {
ENGINE_finish(eng);
return EVP_get_cipherbynid(nid);
}
#endif
/* Otherwise we do an explicit fetch */
......@@ -5894,12 +5899,17 @@ const EVP_MD *ssl_evp_md_fetch(OPENSSL_CTX *libctx,
const char *properties)
{
#ifndef OPENSSL_NO_ENGINE
ENGINE *eng;
/*
* If there is an Engine available for this digest we use the "implicit"
* form to ensure we use that engine later.
*/
if (ENGINE_get_digest_engine(nid) != NULL)
eng = ENGINE_get_digest_engine(nid);
if (eng != NULL) {
ENGINE_finish(eng);
return EVP_get_digestbynid(nid);
}
#endif
/* Otherwise we do an explicit fetch */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册