diff --git a/libs/libteletone/src/libteletone_detect.c b/libs/libteletone/src/libteletone_detect.c index 8b1a792791..7bbdd697df 100644 --- a/libs/libteletone/src/libteletone_detect.c +++ b/libs/libteletone/src/libteletone_detect.c @@ -211,7 +211,7 @@ int teletone_multi_tone_detect (teletone_multi_tone_t *mt, int16_t sample_buffer[], int samples) { - int sample, limit, j, x = 0; + int sample, limit = 0, j, x = 0; float v1, famp; float eng_sum = 0, eng_all[TELETONE_MAX_TONES]; int gtest = 0, see_hit = 0; @@ -224,6 +224,9 @@ int teletone_multi_tone_detect (teletone_multi_tone_t *mt, } else { limit = samples; } + if (limit < 0 || limit > samples) { + limit = samples; + } for (j = sample; j < limit; j++) { famp = sample_buffer[j];