diff options
author | Eric Laurent <elaurent@google.com> | 2013-03-28 11:58:45 -0700 |
---|---|---|
committer | Eric Laurent <elaurent@google.com> | 2013-03-28 12:00:34 -0700 |
commit | b133a4cb2a5a310a7461050a2d96537c6ce2415e (patch) | |
tree | b028d58efe0ba899e02da6aa7d7f958e58eafc2f /media/libmedia | |
parent | 857583fd2ecbeb8696ede1f93b7291449fb2d133 (diff) | |
download | frameworks_av-b133a4cb2a5a310a7461050a2d96537c6ce2415e.zip frameworks_av-b133a4cb2a5a310a7461050a2d96537c6ce2415e.tar.gz frameworks_av-b133a4cb2a5a310a7461050a2d96537c6ce2415e.tar.bz2 |
ToneGenerator: fix overflow in stopTone
Fix overflow in tone duration calculation introduced in
commit 681be039.
Bug 6607077
Change-Id: Ie12f13701345c2b2d3be0b3c4d71cbfa2394a29b
Diffstat (limited to 'media/libmedia')
-rw-r--r-- | media/libmedia/ToneGenerator.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/media/libmedia/ToneGenerator.cpp b/media/libmedia/ToneGenerator.cpp index 9ea3ea7..f09ce75 100644 --- a/media/libmedia/ToneGenerator.cpp +++ b/media/libmedia/ToneGenerator.cpp @@ -986,7 +986,7 @@ void ToneGenerator::stopTone() { // If the start time is valid, make sure that the number of audio samples produced // corresponds at least to the time between the start and stop commands. // This is needed in case of cold start of the output stream. - if ((mStartTime. tv_sec != 0) && (clock_gettime(CLOCK_MONOTONIC, &stopTime) == 0)) { + if ((mStartTime.tv_sec != 0) && (clock_gettime(CLOCK_MONOTONIC, &stopTime) == 0)) { time_t sec = stopTime.tv_sec - mStartTime.tv_sec; long nsec = stopTime.tv_nsec - mStartTime.tv_nsec; long durationMs; @@ -1000,7 +1000,7 @@ void ToneGenerator::stopTone() { } else { // mSamplingRate is always > 1000 sec = sec * 1000 + nsec / 1000000; // duration in milliseconds - mMaxSmp = (sec * mSamplingRate) / 1000; + mMaxSmp = (unsigned int)(((int64_t)sec * mSamplingRate) / 1000); } ALOGV("stopTone() forcing mMaxSmp to %d, total for far %d", mMaxSmp, mTotalSmp); } else { |