ref: f14a78d83431facbbe9e350460e8116ef1c66f9e
parent: b276dee4f0888ff5eaff9f03244e2d49f6e7241b
author: Paul Brossier <piem@piem.org>
date: Sat Sep 8 12:12:31 EDT 2007
filterbank.c: make sure we never write out of input/output vectors in aubio_filterbank_do
--- a/src/filterbank.c
+++ b/src/filterbank.c
@@ -169,9 +169,10 @@
void aubio_filterbank_do(aubio_filterbank_t * f, cvec_t * in, fvec_t *out) {
uint_t n, filter_cnt;
- for(filter_cnt = 0; filter_cnt < f->n_filters; filter_cnt++){
+ for(filter_cnt = 0; (filter_cnt < f->n_filters)
+ && (filter_cnt < out->length); filter_cnt++){
out->data[0][filter_cnt] = 0.f;
- for(n = 0; n < f->win_s; n++){
+ for(n = 0; n < in->length; n++){
out->data[0][filter_cnt] += in->norm[0][n]
* f->filters[filter_cnt]->data[0][n];
}
--
⑨