X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=crypto%2Frand%2Frand_lib.c;h=adbae32ce358633be5cfcd3bb93777ade4e7fa55;hp=597c098d3e389119edae8154e7a2aa29debc3997;hb=ed5538dc2bf723388aba3aea332bf554c514dcfe;hpb=a4a9d97a3e02849b111d9bd488a954dcc6a44910 diff --git a/crypto/rand/rand_lib.c b/crypto/rand/rand_lib.c index 597c098d3e..adbae32ce3 100644 --- a/crypto/rand/rand_lib.c +++ b/crypto/rand/rand_lib.c @@ -58,6 +58,7 @@ #include #include +#include "cryptlib.h" #include #include @@ -73,11 +74,12 @@ int RAND_set_rand_method(ENGINE *engine) { ENGINE *mtmp; mtmp = rand_engine; - if (!ENGINE_init(engine)) + if (engine && !ENGINE_init(engine)) return 0; rand_engine = engine; /* SHOULD ERROR CHECK THIS!!! */ - ENGINE_finish(mtmp); + if(mtmp) + ENGINE_finish(mtmp); return 1; } #endif @@ -86,7 +88,10 @@ const RAND_METHOD *RAND_get_rand_method(void) { if (rand_engine == NULL && (rand_engine = ENGINE_get_default_RAND()) == NULL) + { + RANDerr(RAND_F_RAND_GET_RAND_METHOD,ERR_LIB_ENGINE); return NULL; + } return ENGINE_get_RAND(rand_engine); }