Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/26249)
return -1;
}
- CRYPTO_atomic_add(&prov->activatecnt, -1, &count, prov->activatecnt_lock);
+ if (!CRYPTO_atomic_add(&prov->activatecnt, -1, &count, prov->activatecnt_lock)) {
+ if (lock) {
+ CRYPTO_THREAD_unlock(prov->flag_lock);
+ CRYPTO_THREAD_unlock(store->lock);
+ }
+ return -1;
+ }
+
#ifndef FIPS_MODULE
if (count >= 1 && prov->ischild && upcalls) {
/*