diff --git a/dom/base/FileReader.cpp b/dom/base/FileReader.cpp index 4903b52d27..aaf41aecee 100644 --- a/dom/base/FileReader.cpp +++ b/dom/base/FileReader.cpp @@ -395,8 +395,14 @@ FileReader::ReadFileContent(Blob& aBlob, return; } + CheckedInt size(mTotal); + if (!size.isValid()) { + aRv.Throw(NS_ERROR_OUT_OF_MEMORY); + return; + } + if (mDataFormat == FILE_AS_ARRAYBUFFER) { - mFileData = js_pod_malloc(mTotal); + mFileData = js_pod_malloc(size.value()); if (!mFileData) { NS_WARNING("Preallocation failed for ReadFileData"); aRv.Throw(NS_ERROR_OUT_OF_MEMORY);