Bug 1330273 - Add some security checks about the use of the string buffer in FileReader, r=bkelly

This commit is contained in:
Andrea Marchesini
2017-01-12 17:45:52 +01:00
parent 46a9207d60
commit 0a5ade1332

View File

@@ -333,6 +333,7 @@ FileReader::DoReadData(uint64_t aCount)
} }
uint32_t bytesRead = 0; uint32_t bytesRead = 0;
MOZ_DIAGNOSTIC_ASSERT(mFileData);
mAsyncStream->Read(mFileData + mDataLen, aCount, &bytesRead); mAsyncStream->Read(mFileData + mDataLen, aCount, &bytesRead);
MOZ_ASSERT(bytesRead == aCount, "failed to read data"); MOZ_ASSERT(bytesRead == aCount, "failed to read data");
} }
@@ -731,14 +732,16 @@ FileReader::Notify(Status aStatus)
void void
FileReader::Shutdown() FileReader::Shutdown()
{ {
FreeFileData(); mReadyState = DONE;
mResultArrayBuffer = nullptr;
if (mAsyncStream) { if (mAsyncStream) {
mAsyncStream->Close(); mAsyncStream->Close();
mAsyncStream = nullptr; mAsyncStream = nullptr;
} }
FreeFileData();
mResultArrayBuffer = nullptr;
if (mWorkerPrivate && mBusyCount != 0) { if (mWorkerPrivate && mBusyCount != 0) {
ReleaseWorker(); ReleaseWorker();
mWorkerPrivate = nullptr; mWorkerPrivate = nullptr;