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

Commit 3b67a3e0 authored by Santiago Seifert's avatar Santiago Seifert Committed by Automerger Merge Worker
Browse files

Merge "Abort operation upon arithmetic overflows" into sc-dev am: 1f4ba5f9

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/14947972

Change-Id: Ieebbc4da79546d8562c4fd29b761db3e7d6e074c
parents 18998f11 1f4ba5f9
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -504,7 +504,14 @@ media_status_t MP3Source::read(
            }

            mCurrentTimeUs = seekTimeUs;
            mCurrentPos = mFirstFramePos + seekTimeUs * bitrate / 8000000;
            int64_t seekTimeUsTimesBitrate;
            if (__builtin_mul_overflow(seekTimeUs, bitrate, &seekTimeUsTimesBitrate)) {
              return AMEDIA_ERROR_UNSUPPORTED;
            }
            if (__builtin_add_overflow(
                    mFirstFramePos, seekTimeUsTimesBitrate / 8000000, &mCurrentPos)) {
                return AMEDIA_ERROR_UNSUPPORTED;
            }
            seekCBR = true;
        } else {
            mCurrentTimeUs = actualSeekTimeUs;