summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorPauli <ppzgs1@gmail.com>2021-02-22 09:45:37 +1000
committerPauli <ppzgs1@gmail.com>2021-02-23 23:24:41 +1000
commitf626c3ffae90cacc1044dbcf01c3379fceea61bc (patch)
tree7c7031a812007198ec1c1c35670d4dde60bc3383 /crypto
parent786b13fa7786db8f198c46090816d9a3e4ae72fb (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.c7
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