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

Commit 0f75d202 authored by Marco Nelissen's avatar Marco Nelissen Committed by android-build-merger
Browse files

Merge "Fix overflow in PCR calculations" into nyc-dev

am: 35443e32

* commit '35443e32':
  Fix overflow in PCR calculations

Change-Id: I1bda281a4cc1567e4588ad27a7bf705eb06d7f46
parents ce2bb8f9 35443e32
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -1438,8 +1438,8 @@ status_t ATSParser::parseAdaptationField(ABitReader *br, unsigned PID) {

            // The number of bytes received by this parser up to and
            // including the final byte of this PCR_ext field.
            size_t byteOffsetFromStart =
                mNumTSPacketsParsed * 188 + byteOffsetFromStartOfTSPacket;
            uint64_t byteOffsetFromStart =
                uint64_t(mNumTSPacketsParsed) * 188 + byteOffsetFromStartOfTSPacket;

            for (size_t i = 0; i < mPrograms.size(); ++i) {
                updatePCR(PID, PCR, byteOffsetFromStart);
@@ -1558,8 +1558,8 @@ bool ATSParser::PTSTimeDeltaEstablished() {

__attribute__((no_sanitize("integer")))
void ATSParser::updatePCR(
        unsigned /* PID */, uint64_t PCR, size_t byteOffsetFromStart) {
    ALOGV("PCR 0x%016" PRIx64 " @ %zu", PCR, byteOffsetFromStart);
        unsigned /* PID */, uint64_t PCR, uint64_t byteOffsetFromStart) {
    ALOGV("PCR 0x%016" PRIx64 " @ %" PRIx64, PCR, byteOffsetFromStart);

    if (mNumPCRs == 2) {
        mPCR[0] = mPCR[1];
+2 −2
Original line number Diff line number Diff line
@@ -182,10 +182,10 @@ private:
    // see feedTSPacket().
    status_t parseTS(ABitReader *br, SyncEvent *event);

    void updatePCR(unsigned PID, uint64_t PCR, size_t byteOffsetFromStart);
    void updatePCR(unsigned PID, uint64_t PCR, uint64_t byteOffsetFromStart);

    uint64_t mPCR[2];
    size_t mPCRBytes[2];
    uint64_t mPCRBytes[2];
    int64_t mSystemTimeUs[2];
    size_t mNumPCRs;