Bug 1268929: Limit memory allocated for media to 2GiB max. r?gerald
MozReview-Commit-ID: JGJLZrGFRe2
--- a/dom/media/MediaData.h
+++ b/dom/media/MediaData.h
@@ -218,18 +218,18 @@ private:
// aligned and that it has sufficient end padding to allow for Alignment bytes
// block read as required by some data decoders.
// Returns false if memory couldn't be allocated.
bool EnsureCapacity(size_t aLength)
{
const CheckedInt<size_t> sizeNeeded =
CheckedInt<size_t>(aLength) * sizeof(Type) + AlignmentPaddingSize();
- if (!sizeNeeded.isValid()) {
- // overflow.
+ if (!sizeNeeded.isValid() || sizeNeeded.value() >= INT32_MAX) {
+ // overflow or over an acceptable size.
return false;
}
if (mData && mCapacity >= sizeNeeded.value()) {
return true;
}
auto newBuffer = MakeUniqueFallible<uint8_t[]>(sizeNeeded.value());
if (!newBuffer) {
return false;