summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPauli <ppzgs1@gmail.com>2021-03-23 10:35:13 +1000
committerPauli <pauli@openssl.org>2021-03-26 08:41:32 +1000
commit9aa4be691f5c73eb3c68606d824c104550c053f7 (patch)
tree62186bfb34e7430401df536da23a67e6c570618e
parent96a68f21c305d33f89e1e0bc9c45b6afb0de7654 (diff)
x509: fix coverity 1474424: data race condition
Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/14651)
-rw-r--r--crypto/x509/pcy_map.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/crypto/x509/pcy_map.c b/crypto/x509/pcy_map.c
index b599ff9804..d129eca4c3 100644
--- a/crypto/x509/pcy_map.c
+++ b/crypto/x509/pcy_map.c
@@ -73,8 +73,10 @@ int ossl_policy_cache_set_mapping(X509 *x, POLICY_MAPPINGS *maps)
ret = 1;
bad_mapping:
- if (ret == -1)
+ if (ret == -1 && CRYPTO_THREAD_write_lock(x->lock)) {
x->ex_flags |= EXFLAG_INVALID_POLICY;
+ CRYPTO_THREAD_unlock(x->lock);
+ }
sk_POLICY_MAPPING_pop_free(maps, POLICY_MAPPING_free);
return ret;