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

Commit cb50c54b authored by Chad Brubaker's avatar Chad Brubaker
Browse files

Fix benign unsigned overflow in AuidoTrackShared

fsanitize=integer adds unsigned checks to int32_t - uint32_t, force both
operands to int32_t to avoid such checks being added.

Change-Id: I76fce38f9636f5322ad95fdb81abb690503f4d08
parent 3cce4937
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ size_t clampToSize(T x) {
// In general, this means (new_self) returned is max(self, other) + 1.

static uint32_t incrementSequence(uint32_t self, uint32_t other) {
    int32_t diff = (int32_t) self - other;
    int32_t diff = (int32_t) self - (int32_t) other;
    if (diff >= 0 && diff < INT32_MAX) {
        return self + 1; // we're already ahead of other.
    }
@@ -894,7 +894,7 @@ ssize_t StaticAudioTrackServerProxy::pollPosition()
    if (mObserver.poll(state)) {
        StaticAudioTrackState trystate = mState;
        bool result;
        const int32_t diffSeq = state.mLoopSequence - state.mPositionSequence;
        const int32_t diffSeq = (int32_t) state.mLoopSequence - (int32_t) state.mPositionSequence;

        if (diffSeq < 0) {
            result = updateStateWithLoop(&trystate, state) == OK &&