diff --git a/media/gmp-clearkey/0.1/ClearKeyUtils.cpp b/media/gmp-clearkey/0.1/ClearKeyUtils.cpp index 123ca2464cb3..b5bea0a73d1d 100644 --- a/media/gmp-clearkey/0.1/ClearKeyUtils.cpp +++ b/media/gmp-clearkey/0.1/ClearKeyUtils.cpp @@ -10,6 +10,8 @@ #include #include "ClearKeyUtils.h" +#include "mozilla/ArrayUtils.h" +#include "mozilla/Assertions.h" #include "mozilla/Endian.h" #include "mozilla/NullPtr.h" #include "openaes/oaes_lib.h" @@ -106,7 +108,12 @@ EncodeBase64Web(vector aBinary, string& aEncoded) out[i] += (*data >> (shift + 2)) & sMask; shift = (shift + 2) % 8; - out[i] = sAlphabet[out[i]]; + // Cast idx to size_t before using it as an array-index, + // to pacify clang 'Wchar-subscripts' warning: + size_t idx = static_cast(out[i]); + MOZ_ASSERT(idx < MOZ_ARRAY_LENGTH(sAlphabet), + "out of bounds index for 'sAlphabet'"); + out[i] = sAlphabet[idx]; } return true;