Add Bounds Check to initDataResemblesPSSH am: ce01000c1b
am: c48711d0ff
Change-Id: Ief842a2fa6ff75d1a4ef19a786a906ca7d56ebfb
This commit is contained in:
@@ -1008,6 +1008,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;
|
||||||
|
|||||||
@@ -1316,6 +1316,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