From 56b6cf5b7f5648ab071bd24136006b9d84066005 Mon Sep 17 00:00:00 2001 From: Chad Brubaker Date: Wed, 23 Sep 2015 16:21:54 -0700 Subject: Fix benign overflow in ToneGenerator.cpp while (count--) causes an unsigned overflow when count = 0, refactor the condition to avoid this. Change-Id: I91a8c93e6be715d80070a4c94c1de712cb659265 --- media/libmedia/ToneGenerator.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'media/libmedia') 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; -- cgit v1.1