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

Commit 1cb23b03 authored by Marco Nelissen's avatar Marco Nelissen
Browse files

Fix 64-bit comparison

A 64-bit SIZE_MAX value cast to off64_t is always negative, causing valid
files to be rejected in 64-bit mode.

Change-Id: I8f61c19951f9c73292fa917081b8b2f3bfc405a0
parent 3c0d59dd
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -209,6 +209,11 @@ status_t SampleTable::setChunkOffsetParams(
status_t SampleTable::setSampleToChunkParams(
        off64_t data_offset, size_t data_size) {
    if (mSampleToChunkOffset >= 0) {
        // already set
        return ERROR_MALFORMED;
    }

    if (data_offset < 0) {
        return ERROR_MALFORMED;
    }

@@ -246,7 +251,7 @@ status_t SampleTable::setSampleToChunkParams(
    for (uint32_t i = 0; i < mNumSampleToChunkOffsets; ++i) {
        uint8_t buffer[12];

        if ((off64_t)(SIZE_MAX - 8 - (i * 12)) < mSampleToChunkOffset) {
        if ((SIZE_MAX - 8 - (i * 12)) < (size_t)mSampleToChunkOffset) {
            return ERROR_MALFORMED;
        }