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) {
|
bool WVDrmPlugin::initDataResemblesPSSH(const Vector<uint8_t>& initData) {
|
||||||
const uint8_t* const initDataArray = initData.array();
|
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
|
// Extract the size field
|
||||||
const uint8_t* const sizeField = &initDataArray[0];
|
const uint8_t* const sizeField = &initDataArray[0];
|
||||||
uint32_t nboSize;
|
uint32_t nboSize;
|
||||||
|
|||||||
@@ -1312,6 +1312,11 @@ status_t WVDrmPlugin::mapOEMCryptoResult(OEMCryptoResult res) {
|
|||||||
bool WVDrmPlugin::initDataResemblesPSSH(const std::vector<uint8_t>& initData) {
|
bool WVDrmPlugin::initDataResemblesPSSH(const std::vector<uint8_t>& initData) {
|
||||||
const uint8_t* const initDataArray = initData.data();
|
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
|
// Extract the size field
|
||||||
const uint8_t* const sizeField = &initDataArray[0];
|
const uint8_t* const sizeField = &initDataArray[0];
|
||||||
uint32_t nboSize;
|
uint32_t nboSize;
|
||||||
|
|||||||
Reference in New Issue
Block a user