From 3ac044334c3ff6a61cb4238ff3ddaf17c7efcf49 Mon Sep 17 00:00:00 2001 From: Wei Jia Date: Tue, 5 Jan 2016 10:16:24 -0800 Subject: Sonivox: sanity check numSamples. Bug: 26366256 Change-Id: I066888c25035ea4c60c88f316db4508dc4dab6bc --- arm-wt-22k/lib_src/eas_wtengine.c | 26 ++++++++++++++++++++++++++ arm-wt-22k/lib_src/eas_wtsynth.c | 6 ++++++ 2 files changed, 32 insertions(+) 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 45cf4b1..25a70db 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; -- cgit v1.2.3 From 24d7c408c52143bce7b49de82f3913fd8d1219cf Mon Sep 17 00:00:00 2001 From: Wei Jia Date: Tue, 12 Jan 2016 10:37:30 -0800 Subject: Sonivox: add SafetyNet log. Bug: 26366256 Change-Id: Ief72e01b7cc6d87a015105af847a99d3d9b03cb0 --- arm-wt-22k/lib_src/eas_wtengine.c | 7 +++++++ arm-wt-22k/lib_src/eas_wtsynth.c | 2 ++ 2 files changed, 9 insertions(+) diff --git a/arm-wt-22k/lib_src/eas_wtengine.c b/arm-wt-22k/lib_src/eas_wtengine.c index e7263fd..854d4b4 100644 --- a/arm-wt-22k/lib_src/eas_wtengine.c +++ b/arm-wt-22k/lib_src/eas_wtengine.c @@ -33,6 +33,7 @@ *------------------------------------ */ #include "log/log.h" +#include #include "eas_types.h" #include "eas_math.h" @@ -92,6 +93,7 @@ void WT_VoiceGain (S_WT_VOICE *pWTVoice, S_WT_INT_FRAME *pWTIntFrame) numSamples = pWTIntFrame->numSamples; if (numSamples <= 0) { ALOGE("b/26366256"); + android_errorWriteLog(0x534e4554, "26366256"); return; } pMixBuffer = pWTIntFrame->pMixBuffer; @@ -190,6 +192,7 @@ void WT_Interpolate (S_WT_VOICE *pWTVoice, S_WT_INT_FRAME *pWTIntFrame) numSamples = pWTIntFrame->numSamples; if (numSamples <= 0) { ALOGE("b/26366256"); + android_errorWriteLog(0x534e4554, "26366256"); return; } pOutputBuffer = pWTIntFrame->pAudioBuffer; @@ -287,6 +290,7 @@ void WT_InterpolateNoLoop (S_WT_VOICE *pWTVoice, S_WT_INT_FRAME *pWTIntFrame) numSamples = pWTIntFrame->numSamples; if (numSamples <= 0) { ALOGE("b/26366256"); + android_errorWriteLog(0x534e4554, "26366256"); return; } pOutputBuffer = pWTIntFrame->pAudioBuffer; @@ -379,6 +383,7 @@ void WT_VoiceFilter (S_FILTER_CONTROL *pFilter, S_WT_INT_FRAME *pWTIntFrame) numSamples = pWTIntFrame->numSamples; if (numSamples <= 0) { ALOGE("b/26366256"); + android_errorWriteLog(0x534e4554, "26366256"); return; } pAudioBuffer = pWTIntFrame->pAudioBuffer; @@ -446,6 +451,7 @@ void WT_VoiceFilter (S_FILTER_CONTROL *pFilter, S_WT_INT_FRAME *pWTIntFrame) numSamples = pWTIntFrame->numSamples; if (numSamples <= 0) { ALOGE("b/26366256"); + android_errorWriteLog(0x534e4554, "26366256"); return; } pOutputBuffer = pWTIntFrame->pAudioBuffer; @@ -593,6 +599,7 @@ void WT_InterpolateMono (S_WT_VOICE *pWTVoice, S_WT_INT_FRAME *pWTIntFrame) numSamples = pWTIntFrame->numSamples; if (numSamples <= 0) { ALOGE("b/26366256"); + android_errorWriteLog(0x534e4554, "26366256"); return; } pMixBuffer = pWTIntFrame->pMixBuffer; diff --git a/arm-wt-22k/lib_src/eas_wtsynth.c b/arm-wt-22k/lib_src/eas_wtsynth.c index 25a70db..9257951 100644 --- a/arm-wt-22k/lib_src/eas_wtsynth.c +++ b/arm-wt-22k/lib_src/eas_wtsynth.c @@ -29,6 +29,7 @@ // includes #include "log/log.h" +#include #include "eas_data.h" #include "eas_report.h" @@ -471,6 +472,7 @@ EAS_BOOL WT_CheckSampleEnd (S_WT_VOICE *pWTVoice, S_WT_INT_FRAME *pWTIntFrame, E } if (pWTIntFrame->numSamples < 0) { ALOGE("b/26366256"); + android_errorWriteLog(0x534e4554, "26366256"); pWTIntFrame->numSamples = 0; } -- cgit v1.2.3