# HG changeset patch # User mru # Date 1277372554 0 # Node ID 052b9c58ccc4db19a109da6819a79e52069301ee # Parent 3f5b35e5f4deb1e60ddc06e90fb2eab7c85d79af Remove VLA in ff_kbd_window_init, limit window size to 1024 diff -r 3f5b35e5f4de -r 052b9c58ccc4 fft.h --- a/fft.h Thu Jun 24 09:02:44 2010 +0000 +++ b/fft.h Thu Jun 24 09:42:34 2010 +0000 @@ -151,10 +151,15 @@ } /** + * Maximum window size for ff_kbd_window_init. + */ +#define FF_KBD_WINDOW_MAX 1024 + +/** * Generate a Kaiser-Bessel Derived Window. * @param window pointer to half window * @param alpha determines window shape - * @param n size of half window + * @param n size of half window, max FF_KBD_WINDOW_MAX */ void ff_kbd_window_init(float *window, float alpha, int n); diff -r 3f5b35e5f4de -r 052b9c58ccc4 mdct.c --- a/mdct.c Thu Jun 24 09:02:44 2010 +0000 +++ b/mdct.c Thu Jun 24 09:42:34 2010 +0000 @@ -36,9 +36,11 @@ { int i, j; double sum = 0.0, bessel, tmp; - double local_window[n]; + double local_window[FF_KBD_WINDOW_MAX]; double alpha2 = (alpha * M_PI / n) * (alpha * M_PI / n); + assert(n <= FF_KBD_WINDOW_MAX); + for (i = 0; i < n; i++) { tmp = i * (n - i) * alpha2; bessel = 1.0;