From 1d5b7cc8feaa3ebd76077b61bd59a24064719193 Mon Sep 17 00:00:00 2001 From: "John W. Bruce" Date: Fri, 31 May 2019 19:02:00 -0700 Subject: [PATCH] Take a Global Write Lock Before Calling OEMCrypto_GenerateNonce() (This is a merge of http://go/wvgerrit/77803) In OEMCrypto 15.2, OEMCrypto_GenerateNonce() is a Session Initialization Function, which means the global OEMCrypto lock must be held before calling it. There's no harm updating our code to behave this way now, even before OEMCrypto 15.2 implementations are ready, since it's a stricter guarantee than the current behavior. Bug: 131327826 Test: CE CDM Unit Tests Test: Android Unit Tests Change-Id: Icb6a86dea7298c99596fa9e3d90cec721ebcb8a6 --- libwvdrmengine/cdm/core/src/crypto_session.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libwvdrmengine/cdm/core/src/crypto_session.cpp b/libwvdrmengine/cdm/core/src/crypto_session.cpp index 4b77072a..3621a589 100644 --- a/libwvdrmengine/cdm/core/src/crypto_session.cpp +++ b/libwvdrmengine/cdm/core/src/crypto_session.cpp @@ -1489,7 +1489,7 @@ CdmResponseType CryptoSession::GenerateNonce(uint32_t* nonce) { } OEMCryptoResult result; - WithOecSessionLock("GenerateNonce", [&] { + WithOecWriteLock("GenerateNonce", [&] { result = OEMCrypto_GenerateNonce(oec_session_id_, nonce); }); metrics_->oemcrypto_generate_nonce_.Increment(result);