diff --git a/libwvdrmengine/cdm/util/src/string_conversions.cpp b/libwvdrmengine/cdm/util/src/string_conversions.cpp index 9e822102..f3a0ba4d 100644 --- a/libwvdrmengine/cdm/util/src/string_conversions.cpp +++ b/libwvdrmengine/cdm/util/src/string_conversions.cpp @@ -33,9 +33,11 @@ const char kBase64SafeCodes[] = // Decodes a single Base64 encoded character into its 6-bit value. // The provided |codes| must be a Base64 character map. int DecodeBase64Char(char c, const char* codes) { - const char* it = strchr(codes, c); - if (it == nullptr) return -1; - return it - codes; + const char* c_in_codes = strchr(codes, c); + if (c_in_codes == nullptr) return -1; + const uintptr_t c_in_codes_int = reinterpret_cast(c_in_codes); + const uintptr_t codes_int = reinterpret_cast(codes); + return static_cast(c_in_codes_int - codes_int); } bool DecodeHexChar(char ch, uint8_t* digit) { @@ -158,9 +160,9 @@ std::vector Base64DecodeInternal(const char* encoded, size_t length, // converts an ascii hex string(2 bytes per digit) into a decimal byte string std::vector a2b_hex(const std::string& byte) { std::vector array; - unsigned int count = byte.size(); + size_t count = byte.size(); if (count == 0 || (count % 2) != 0) { - LOGE("Invalid input size %u for string %s", count, byte.c_str()); + LOGE("Invalid input size %zu for string %s", count, byte.c_str()); return array; }