diff options
author | Wei Jia <wjia@google.com> | 2016-01-06 21:53:39 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-01-06 21:53:39 +0000 |
commit | 13c86748b3f921346b3ea80e226813dda8b6ec73 (patch) | |
tree | 0ee09bca8aff23c3abc523a07d18053f17617fc7 | |
parent | a5138a2356ae892c313da22b91b2d82de3db03df (diff) | |
parent | 501db4bb22666a1b5e8043d73270e20bbf59c9f0 (diff) | |
download | sonivox-13c86748b3f921346b3ea80e226813dda8b6ec73.tar.gz |
Sonivox: sanity check numSamples. am: 3ac044334c am: 7ddf08ce3b am: 68ea08e38a am: fdfca54d38
am: 501db4bb22
* commit '501db4bb22666a1b5e8043d73270e20bbf59c9f0':
Sonivox: sanity check numSamples.
-rw-r--r-- | arm-wt-22k/lib_src/eas_wtengine.c | 26 | ||||
-rw-r--r-- | arm-wt-22k/lib_src/eas_wtsynth.c | 6 |
2 files changed, 32 insertions, 0 deletions
diff --git a/arm-wt-22k/lib_src/eas_wtengine.c b/arm-wt-22k/lib_src/eas_wtengine.c index 224f60d..e7263fd 100644 --- a/arm-wt-22k/lib_src/eas_wtengine.c +++ b/arm-wt-22k/lib_src/eas_wtengine.c @@ -32,6 +32,8 @@ * includes *------------------------------------ */ +#include "log/log.h" + #include "eas_types.h" #include "eas_math.h" #include "eas_audioconst.h" @@ -88,6 +90,10 @@ void WT_VoiceGain (S_WT_VOICE *pWTVoice, S_WT_INT_FRAME *pWTIntFrame) /* initialize some local variables */ numSamples = pWTIntFrame->numSamples; + if (numSamples <= 0) { + ALOGE("b/26366256"); + return; + } pMixBuffer = pWTIntFrame->pMixBuffer; pInputBuffer = pWTIntFrame->pAudioBuffer; @@ -182,6 +188,10 @@ void WT_Interpolate (S_WT_VOICE *pWTVoice, S_WT_INT_FRAME *pWTIntFrame) /* initialize some local variables */ numSamples = pWTIntFrame->numSamples; + if (numSamples <= 0) { + ALOGE("b/26366256"); + return; + } pOutputBuffer = pWTIntFrame->pAudioBuffer; loopEnd = (const EAS_SAMPLE*) pWTVoice->loopEnd + 1; @@ -275,6 +285,10 @@ void WT_InterpolateNoLoop (S_WT_VOICE *pWTVoice, S_WT_INT_FRAME *pWTIntFrame) /* initialize some local variables */ numSamples = pWTIntFrame->numSamples; + if (numSamples <= 0) { + ALOGE("b/26366256"); + return; + } pOutputBuffer = pWTIntFrame->pAudioBuffer; phaseInc = pWTIntFrame->frame.phaseIncrement; @@ -363,6 +377,10 @@ void WT_VoiceFilter (S_FILTER_CONTROL *pFilter, S_WT_INT_FRAME *pWTIntFrame) /* initialize some local variables */ numSamples = pWTIntFrame->numSamples; + if (numSamples <= 0) { + ALOGE("b/26366256"); + return; + } pAudioBuffer = pWTIntFrame->pAudioBuffer; z1 = pFilter->z1; @@ -426,6 +444,10 @@ void WT_VoiceFilter (S_FILTER_CONTROL *pFilter, S_WT_INT_FRAME *pWTIntFrame) /* initialize some local variables */ numSamples = pWTIntFrame->numSamples; + if (numSamples <= 0) { + ALOGE("b/26366256"); + return; + } pOutputBuffer = pWTIntFrame->pAudioBuffer; phaseInc = pWTIntFrame->frame.phaseIncrement; @@ -569,6 +591,10 @@ void WT_InterpolateMono (S_WT_VOICE *pWTVoice, S_WT_INT_FRAME *pWTIntFrame) EAS_I8 *pLoopStart; numSamples = pWTIntFrame->numSamples; + if (numSamples <= 0) { + ALOGE("b/26366256"); + return; + } pMixBuffer = pWTIntFrame->pMixBuffer; /* calculate gain increment */ diff --git a/arm-wt-22k/lib_src/eas_wtsynth.c b/arm-wt-22k/lib_src/eas_wtsynth.c index 6b0922e..4626637 100644 --- a/arm-wt-22k/lib_src/eas_wtsynth.c +++ b/arm-wt-22k/lib_src/eas_wtsynth.c @@ -28,6 +28,8 @@ */ // includes +#include "log/log.h" + #include "eas_data.h" #include "eas_report.h" #include "eas_host.h" @@ -467,6 +469,10 @@ EAS_BOOL WT_CheckSampleEnd (S_WT_VOICE *pWTVoice, S_WT_INT_FRAME *pWTIntFrame, E } else { pWTIntFrame->numSamples = numSamples; } + if (pWTIntFrame->numSamples < 0) { + ALOGE("b/26366256"); + pWTIntFrame->numSamples = 0; + } /* sound will be done this frame */ done = EAS_TRUE; |