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

Commit f2ae7606 authored by Andreas Huber's avatar Andreas Huber
Browse files

A reference to the psi section data could become invalid if more

sections were added to the KeyedVector.

Change-Id: I095b5452ccfad89d69fc502fb21ce39495e201c3
related-to-bug: 8754565
parent a69f3213
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -1059,7 +1059,7 @@ status_t ATSParser::parsePID(
    ssize_t sectionIndex = mPSISections.indexOfKey(PID);

    if (sectionIndex >= 0) {
        const sp<PSISection> &section = mPSISections.valueAt(sectionIndex);
        sp<PSISection> section = mPSISections.valueAt(sectionIndex);

        if (payload_unit_start_indicator) {
            CHECK(section->isEmpty());
@@ -1068,7 +1068,6 @@ status_t ATSParser::parsePID(
            br->skipBits(skip * 8);
        }


        CHECK((br->numBitsLeft() % 8) == 0);
        status_t err = section->append(br->data(), br->numBitsLeft() / 8);

@@ -1103,10 +1102,13 @@ status_t ATSParser::parsePID(

            if (!handled) {
                mPSISections.removeItem(PID);
                section.clear();
            }
        }

        if (section != NULL) {
            section->clear();
        }

        return OK;
    }