Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 572d88c7 authored by Jon Larimer's avatar Jon Larimer Committed by Android Git Automerger
Browse files

am cffe8532: Merge "Detect allocation failures and bail gracefully"

* commit 'cffe8532':
  Detect allocation failures and bail gracefully
parents 695b5896 cffe8532
Loading
Loading
Loading
Loading
+16 −5
Original line number Diff line number Diff line
@@ -234,7 +234,9 @@ status_t SampleTable::setSampleToChunkParams(
        return ERROR_OUT_OF_RANGE;

    mSampleToChunkEntries =
        new SampleToChunkEntry[mNumSampleToChunkOffsets];
        new (std::nothrow) SampleToChunkEntry[mNumSampleToChunkOffsets];
    if (!mSampleToChunkEntries)
        return ERROR_OUT_OF_RANGE;

    for (uint32_t i = 0; i < mNumSampleToChunkOffsets; ++i) {
        uint8_t buffer[12];
@@ -337,7 +339,9 @@ status_t SampleTable::setTimeToSampleParams(
    if (allocSize > SIZE_MAX) {
        return ERROR_OUT_OF_RANGE;
    }
    mTimeToSample = new uint32_t[mTimeToSampleCount * 2];
    mTimeToSample = new (std::nothrow) uint32_t[mTimeToSampleCount * 2];
    if (!mTimeToSample)
        return ERROR_OUT_OF_RANGE;

    size_t size = sizeof(uint32_t) * mTimeToSampleCount * 2;
    if (mDataSource->readAt(
@@ -384,7 +388,9 @@ status_t SampleTable::setCompositionTimeToSampleParams(
        return ERROR_OUT_OF_RANGE;
    }

    mCompositionTimeDeltaEntries = new uint32_t[2 * numEntries];
    mCompositionTimeDeltaEntries = new (std::nothrow) uint32_t[2 * numEntries];
    if (!mCompositionTimeDeltaEntries)
        return ERROR_OUT_OF_RANGE;

    if (mDataSource->readAt(
                data_offset + 8, mCompositionTimeDeltaEntries, numEntries * 8)
@@ -434,7 +440,10 @@ status_t SampleTable::setSyncSampleParams(off64_t data_offset, size_t data_size)
        return ERROR_OUT_OF_RANGE;
    }

    mSyncSamples = new uint32_t[mNumSyncSamples];
    mSyncSamples = new (std::nothrow) uint32_t[mNumSyncSamples];
    if (!mSyncSamples)
        return ERROR_OUT_OF_RANGE;

    size_t size = mNumSyncSamples * sizeof(uint32_t);
    if (mDataSource->readAt(mSyncSampleOffset + 8, mSyncSamples, size)
            != (ssize_t)size) {
@@ -502,7 +511,9 @@ void SampleTable::buildSampleEntriesTable() {
        return;
    }

    mSampleTimeEntries = new SampleTimeEntry[mNumSampleSizes];
    mSampleTimeEntries = new (std::nothrow) SampleTimeEntry[mNumSampleSizes];
    if (!mSampleTimeEntries)
        return;

    uint32_t sampleIndex = 0;
    uint32_t sampleTime = 0;