diff options
author | Dan Austin <danielaustin@google.com> | 2015-10-27 16:14:52 -0700 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2015-11-05 21:16:19 -0800 |
commit | 90eadbb16b9d8bfef54e5a1b46e6106539b660de (patch) | |
tree | 7573e4723f4f9f3e95f23f670eb57ca318887920 /media/libmedia/AudioTrack.cpp | |
parent | 085729eae6112d5d73f3da39f66ca59bc0603218 (diff) | |
download | frameworks_av-90eadbb16b9d8bfef54e5a1b46e6106539b660de.zip frameworks_av-90eadbb16b9d8bfef54e5a1b46e6106539b660de.tar.gz frameworks_av-90eadbb16b9d8bfef54e5a1b46e6106539b660de.tar.bz2 |
Refactor setPlaybackRate to avoid benign unsigned integer overflow.
There is a check that results in a benign unsigned integer overflow.
This has been refactored to avoid the unsigned integer overflow.
Bug: 25327431
Change-Id: Ib112a7cd585c680f13e4bee3d7e9f45da7d66f1d
Diffstat (limited to 'media/libmedia/AudioTrack.cpp')
-rw-r--r-- | media/libmedia/AudioTrack.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp index 946c118..3a8dc07 100644 --- a/media/libmedia/AudioTrack.cpp +++ b/media/libmedia/AudioTrack.cpp @@ -842,13 +842,13 @@ status_t AudioTrack::setPlaybackRate(const AudioPlaybackRate &playbackRate) } // Check resampler ratios are within bounds - if (effectiveRate > mSampleRate * AUDIO_RESAMPLER_DOWN_RATIO_MAX) { + if ((uint64_t)effectiveRate > (uint64_t)mSampleRate * (uint64_t)AUDIO_RESAMPLER_DOWN_RATIO_MAX) { ALOGV("setPlaybackRate(%f, %f) failed. Resample rate exceeds max accepted value", playbackRate.mSpeed, playbackRate.mPitch); return BAD_VALUE; } - if (effectiveRate * AUDIO_RESAMPLER_UP_RATIO_MAX < mSampleRate) { + if ((uint64_t)effectiveRate * (uint64_t)AUDIO_RESAMPLER_UP_RATIO_MAX < (uint64_t)mSampleRate) { ALOGV("setPlaybackRate(%f, %f) failed. Resample rate below min accepted value", playbackRate.mSpeed, playbackRate.mPitch); return BAD_VALUE; |