diff options
author | Pauli <ppzgs1@gmail.com> | 2021-02-22 09:45:37 +1000 |
---|---|---|
committer | Pauli <ppzgs1@gmail.com> | 2021-02-23 23:24:41 +1000 |
commit | f626c3ffae90cacc1044dbcf01c3379fceea61bc (patch) | |
tree | 7c7031a812007198ec1c1c35670d4dde60bc3383 /crypto | |
parent | 786b13fa7786db8f198c46090816d9a3e4ae72fb (diff) |
rand: allow lock/unlock functions to be absent
Reviewed-by: Tim Hudson <tjh@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/13652)
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/evp/evp_rand.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/crypto/evp/evp_rand.c b/crypto/evp/evp_rand.c index a1206c154f..4d18194a0b 100644 --- a/crypto/evp/evp_rand.c +++ b/crypto/evp/evp_rand.c @@ -117,7 +117,7 @@ static void *evp_rand_from_dispatch(int name_id, OSSL_PROVIDER *prov) { EVP_RAND *rand = NULL; - int fnrandcnt = 0, fnctxcnt = 0, fnlockcnt = 0; + int fnrandcnt = 0, fnctxcnt = 0, fnlockcnt = 0, fnenablelockcnt = 0; #ifdef FIPS_MODULE int fnzeroizecnt = 0; #endif @@ -174,7 +174,7 @@ static void *evp_rand_from_dispatch(int name_id, if (rand->enable_locking != NULL) break; rand->enable_locking = OSSL_FUNC_rand_enable_locking(fns); - fnlockcnt++; + fnenablelockcnt++; break; case OSSL_FUNC_RAND_LOCK: if (rand->lock != NULL) @@ -243,7 +243,8 @@ static void *evp_rand_from_dispatch(int name_id, */ if (fnrandcnt != 3 || fnctxcnt != 3 - || (fnlockcnt != 0 && fnlockcnt != 3) + || (fnenablelockcnt != 0 && fnenablelockcnt != 1) + || (fnlockcnt != 0 && fnlockcnt != 2) #ifdef FIPS_MODULE || fnzeroizecnt != 1 #endif |