Use vec.data() instead of &vec[0].
[ Merge of http://go/wvgerrit/67984 ] Getting the address of the first element is invalid when the size is 0. Calling data() is valid when the size is zero so long as we don't use the resulting pointer. This is important when we pass the pointer to low-level functions like memcpy. Also, MSVC is stricter about this and doesn't allow indexing the 0-th element when it is empty. But GCC/Clang seem to be fine with it so long as the object isn't used. Test: WV unit/integration tests Change-Id: Ic5d11da41dd3a185a63f86a6ea91e9b954fd699a
This commit is contained in:
@@ -405,7 +405,7 @@ bool SessionContext::ValidateMessage(const uint8_t* given_message,
|
||||
uint8_t computed_signature[SHA256_DIGEST_LENGTH];
|
||||
memset(computed_signature, 0, SHA256_DIGEST_LENGTH);
|
||||
unsigned int md_len = SHA256_DIGEST_LENGTH;
|
||||
if (!HMAC(EVP_sha256(), &mac_key_server_[0], mac_key_server_.size(),
|
||||
if (!HMAC(EVP_sha256(), mac_key_server_.data(), mac_key_server_.size(),
|
||||
given_message, message_length, computed_signature, &md_len)) {
|
||||
LOGE("ValidateMessage: Could not compute signature.");
|
||||
return false;
|
||||
|
||||
@@ -325,7 +325,7 @@ OEMCryptoResult UsageTableEntry::CopyOldUsageEntry(
|
||||
} else {
|
||||
data_.pst_length = pst.size();
|
||||
}
|
||||
memcpy(data_.pst, &pst[0], data_.pst_length);
|
||||
memcpy(data_.pst, pst.data(), data_.pst_length);
|
||||
data_.pst[data_.pst_length] = '\0';
|
||||
return OEMCrypto_SUCCESS;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user