提交 ed5538dc 编写于 作者: D Dr. Stephen Henson

Fix memory leak when RAND is used: need to cleanup
RANDs ENGINE reference in ENGINE_cleanup().
上级 b8ffcf49
...@@ -856,7 +856,8 @@ int ENGINE_clear_defaults(void) ...@@ -856,7 +856,8 @@ int ENGINE_clear_defaults(void)
#endif #endif
!ENGINE_set_default_RAND(NULL) || !ENGINE_set_default_RAND(NULL) ||
!ENGINE_set_default_BN_mod_exp(NULL) || !ENGINE_set_default_BN_mod_exp(NULL) ||
!ENGINE_set_default_BN_mod_exp_crt(NULL)) !ENGINE_set_default_BN_mod_exp_crt(NULL) ||
!RAND_set_rand_method(NULL))
return 0; return 0;
return 1; return 1;
} }
......
...@@ -74,11 +74,12 @@ int RAND_set_rand_method(ENGINE *engine) ...@@ -74,11 +74,12 @@ int RAND_set_rand_method(ENGINE *engine)
{ {
ENGINE *mtmp; ENGINE *mtmp;
mtmp = rand_engine; mtmp = rand_engine;
if (!ENGINE_init(engine)) if (engine && !ENGINE_init(engine))
return 0; return 0;
rand_engine = engine; rand_engine = engine;
/* SHOULD ERROR CHECK THIS!!! */ /* SHOULD ERROR CHECK THIS!!! */
ENGINE_finish(mtmp); if(mtmp)
ENGINE_finish(mtmp);
return 1; return 1;
} }
#endif #endif
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册