Fix memory leak when RAND is used: need to cleanup

RANDs ENGINE reference in ENGINE_cleanup().
This commit is contained in:
Dr. Stephen Henson 2001-06-21 12:19:10 +00:00
parent b8ffcf49ed
commit ed5538dc2b
2 changed files with 5 additions and 3 deletions

View File

@ -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;
} }

View File

@ -74,10 +74,11 @@ 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!!! */
if(mtmp)
ENGINE_finish(mtmp); ENGINE_finish(mtmp);
return 1; return 1;
} }