Add Bounds Check to initDataResemblesPSSH
am: ce01000c1b
Change-Id: Ia40ae99bc17f2006901ca2cd91054a9ae3768a59
This commit is contained in:
@@ -1005,6 +1005,11 @@ status_t WVDrmPlugin::mapOEMCryptoResult(OEMCryptoResult res) {
|
||||
bool WVDrmPlugin::initDataResemblesPSSH(const Vector<uint8_t>& initData) {
|
||||
const uint8_t* const initDataArray = initData.array();
|
||||
|
||||
if (sizeof(uint32_t) + kPsshTag.size() > initData.size()) {
|
||||
// The init data is so small that it couldn't contain a size and PSSH tag.
|
||||
return false;
|
||||
}
|
||||
|
||||
// Extract the size field
|
||||
const uint8_t* const sizeField = &initDataArray[0];
|
||||
uint32_t nboSize;
|
||||
|
||||
@@ -1312,6 +1312,11 @@ status_t WVDrmPlugin::mapOEMCryptoResult(OEMCryptoResult res) {
|
||||
bool WVDrmPlugin::initDataResemblesPSSH(const std::vector<uint8_t>& initData) {
|
||||
const uint8_t* const initDataArray = initData.data();
|
||||
|
||||
if (sizeof(uint32_t) + kPsshTag.size() > initData.size()) {
|
||||
// The init data is so small that it couldn't contain a size and PSSH tag.
|
||||
return false;
|
||||
}
|
||||
|
||||
// Extract the size field
|
||||
const uint8_t* const sizeField = &initDataArray[0];
|
||||
uint32_t nboSize;
|
||||
|
||||
Reference in New Issue
Block a user