From 89666aeb89573f6de3d9718e64bf688bd99c6de6 Mon Sep 17 00:00:00 2001 From: Googler Date: Fri, 14 Apr 2023 06:40:20 -0700 Subject: [PATCH] Fix issues identified by clang-tidy - Replace assert with odk_static_assert for checks that can be handled at compile time. - Use explicit bool conversion with memcmp. Merged from https://widevine-internal-review.googlesource.com/170414 PiperOrigin-RevId: 524277743 Change-Id: I8b32e886e780e80406afceea562be2033d75d340 --- libwvdrmengine/oemcrypto/odk/include/odk_structs.h | 2 +- .../oemcrypto/odk/src/core_message_deserialize.cpp | 6 +++--- libwvdrmengine/oemcrypto/odk/src/odk_message.c | 12 ++---------- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/libwvdrmengine/oemcrypto/odk/include/odk_structs.h b/libwvdrmengine/oemcrypto/odk/include/odk_structs.h index 26a3de80..20e73e9a 100644 --- a/libwvdrmengine/oemcrypto/odk/include/odk_structs.h +++ b/libwvdrmengine/oemcrypto/odk/include/odk_structs.h @@ -19,7 +19,7 @@ extern "C" { #define ODK_MINOR_VERSION 2 /* ODK Version string. Date changed automatically on each release. */ -#define ODK_RELEASE_DATE "ODK v18.2 2023-04-12" +#define ODK_RELEASE_DATE "ODK v18.2 2023-04-14" /* The lowest version number for an ODK message. */ #define ODK_FIRST_VERSION 16 diff --git a/libwvdrmengine/oemcrypto/odk/src/core_message_deserialize.cpp b/libwvdrmengine/oemcrypto/odk/src/core_message_deserialize.cpp index 79f819c0..30e68c4e 100644 --- a/libwvdrmengine/oemcrypto/odk/src/core_message_deserialize.cpp +++ b/libwvdrmengine/oemcrypto/odk/src/core_message_deserialize.cpp @@ -201,7 +201,7 @@ bool CoreProvisioningRequestFromMessage( if (device_id_length > 0) { uint8_t zero[ODK_DEVICE_ID_LEN_MAX] = {}; if (memcmp(zero, device_id + device_id_length, - ODK_DEVICE_ID_LEN_MAX - device_id_length)) { + ODK_DEVICE_ID_LEN_MAX - device_id_length) != 0) { return false; } core_provisioning_request->device_id.assign( @@ -233,7 +233,7 @@ bool CoreProvisioning40RequestFromMessage( } uint8_t zero[ODK_DEVICE_INFO_LEN_MAX] = {}; if (memcmp(zero, device_info + device_info_length, - ODK_DEVICE_INFO_LEN_MAX - device_info_length)) { + ODK_DEVICE_INFO_LEN_MAX - device_info_length) != 0) { return false; } core_provisioning_request->device_info.assign( @@ -258,7 +258,7 @@ bool CoreRenewedProvisioningRequestFromMessage( } uint8_t zero[ODK_DEVICE_ID_LEN_MAX] = {}; if (memcmp(zero, device_id + device_id_length, - ODK_DEVICE_ID_LEN_MAX - device_id_length)) { + ODK_DEVICE_ID_LEN_MAX - device_id_length) != 0) { return false; } core_provisioning_request->device_id.assign( diff --git a/libwvdrmengine/oemcrypto/odk/src/odk_message.c b/libwvdrmengine/oemcrypto/odk/src/odk_message.c index df29d231..7cc05c05 100644 --- a/libwvdrmengine/oemcrypto/odk/src/odk_message.c +++ b/libwvdrmengine/oemcrypto/odk/src/odk_message.c @@ -8,20 +8,13 @@ #include #include +#include "odk_assert.h" #include "odk_message_priv.h" -/* - * C11 defines static_assert in assert.h. If it is available, force a compile - * time error if the abstract ODK_Message struct size does not match its - * implementation. If static_assert is not available, the runtime assert in - * InitMessage will catch the mismatch at the time a message is initialized. - */ -#ifdef static_assert -static_assert( +odk_static_assert( sizeof(ODK_Message) >= sizeof(ODK_Message_Impl), "sizeof(ODK_Message) is too small. You can increase " "SIZE_OF_ODK_MESSAGE_IMPL in odk_message.h to make it large enough."); -#endif /* * Create a message structure that references a separate data buffer. An @@ -34,7 +27,6 @@ static_assert( * unchanged by this function. */ ODK_Message ODK_Message_Create(uint8_t* buffer, size_t capacity) { - assert(sizeof(ODK_Message) >= sizeof(ODK_Message_Impl)); ODK_Message message; ODK_Message_Impl* message_impl = (ODK_Message_Impl*)&message; message_impl->base = buffer;