diff options
author | Chad Brubaker <cbrubaker@google.com> | 2015-09-23 16:21:54 -0700 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2015-12-07 18:45:16 -0800 |
commit | 56b6cf5b7f5648ab071bd24136006b9d84066005 (patch) | |
tree | afd7cea4ea873ec5b88b87abd1eff3aa0ac85a67 /media/libmedia | |
parent | c0bad787f59f9b3c4a15819461867a7997e6d5e3 (diff) | |
download | frameworks_av-56b6cf5b7f5648ab071bd24136006b9d84066005.zip frameworks_av-56b6cf5b7f5648ab071bd24136006b9d84066005.tar.gz frameworks_av-56b6cf5b7f5648ab071bd24136006b9d84066005.tar.bz2 |
Fix benign overflow in ToneGenerator.cpp
while (count--) causes an unsigned overflow when count = 0, refactor the
condition to avoid this.
Change-Id: I91a8c93e6be715d80070a4c94c1de712cb659265
Diffstat (limited to 'media/libmedia')
-rw-r--r-- | media/libmedia/ToneGenerator.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/media/libmedia/ToneGenerator.cpp b/media/libmedia/ToneGenerator.cpp index 53b229e..d738ea7 100644 --- a/media/libmedia/ToneGenerator.cpp +++ b/media/libmedia/ToneGenerator.cpp @@ -1586,7 +1586,8 @@ void ToneGenerator::WaveGenerator::getSamples(short *outBuffer, } long dec = lAmplitude/count; // loop generation - while (count--) { + while (count) { + count--; Sample = ((lA1 * lS1) >> S_Q14) - lS2; // shift delay lS2 = lS1; @@ -1597,7 +1598,8 @@ void ToneGenerator::WaveGenerator::getSamples(short *outBuffer, } } else { // loop generation - while (count--) { + while (count) { + count--; Sample = ((lA1 * lS1) >> S_Q14) - lS2; // shift delay lS2 = lS1; |