libavcodec/ra288.c:216: error: Buffer Overrun L3
  Offset: [-33, 35] (⇐ -1 + [-32, 36]) Size: 37 by call to `eval_lpc_coeffs`.

libavcodec/ra288.c:208:1: Array declaration
206.  * Backward synthesis filter. Find the LPC coefficients from past speech data.
207.  */
208. static void backward_filter(RA288Context *ractx)
     ^
209. {
210.     float temp1[37]; // RTMP in the spec

libavcodec/ra288.c:216:10: Call
214.                      ractx->sp_rec, syn_window);
215. 
216.     if (!eval_lpc_coeffs(temp1, ractx->sp_lpc, 36))
              ^
217.         colmult(ractx->sp_lpc, ractx->sp_lpc, syn_bw_tab, 36);
218. 

libavcodec/ra288.c:118:1: <Offset trace>
116.  * @return 0 if success, -1 if fail
117.  */
118. static int eval_lpc_coeffs(const float *in, float *tgt, int n)
     ^
119. {
120.     int i, j;

libavcodec/ra288.c:118:1: Parameter `n`
  116.  * @return 0 if success, -1 if fail
  117.  */
  118. static int eval_lpc_coeffs(const float *in, float *tgt, int n)
       ^
  119. {
  120.     int i, j;

libavcodec/ra288.c:118:1: <Length trace>
116.  * @return 0 if success, -1 if fail
117.  */
118. static int eval_lpc_coeffs(const float *in, float *tgt, int n)
     ^
119. {
120.     int i, j;

libavcodec/ra288.c:118:1: Parameter `*in`
  116.  * @return 0 if success, -1 if fail
  117.  */
  118. static int eval_lpc_coeffs(const float *in, float *tgt, int n)
       ^
  119. {
  120.     int i, j;

libavcodec/ra288.c:129:5: Assignment
  127.         return -1;
  128. 
  129.     in--; // To avoid a -1 subtraction in the inner loop
           ^
  130. 
  131.     for (i=1; i <= n; i++) {

libavcodec/ra288.c:135:19: Array access: Offset: [-33, 35] (⇐ -1 + [-32, 36]) Size: 37 by call to `eval_lpc_coeffs` 
  133. 
  134.         for (j=0; j < i - 1; j++)
  135.             f1 += in[i-j]*tgt[j];
                         ^
  136. 
  137.         tgt[i-1] = f2 = -f1/f0;

static int eval_lpc_coeffs(const float *in, float *tgt, int n)
{
    int i, j;
    double f0, f1, f2;
    if (in[n] == 0)
        return -1;
    if ((f0 = *in) <= 0)
        return -1;
    in--;
    for (i=1; i <= n; i++) {
        f1 = in[i+1];
        for (j=0; j < i - 1; j++)
            f1 += in[i-j]*tgt[j];
        tgt[i-1] = f2 = -f1/f0;
        for (j=0; j < i >> 1; j++) {
            float temp = tgt[j] + tgt[i-j-2]*f2;
            tgt[i-j-2] += tgt[j]*f2;
            tgt[j] = temp;
        }
        if ((f0 += f1*f2) < 0)
            return -1;
    }
    return 0;
}
['static void backward_filter(RA288Context *ractx)\n{\n    float temp1[37];\n    float temp2[11];\n    do_hybrid_window(36, 40, 35, ractx->sp_block, temp1, ractx->sp_hist,\n                     ractx->sp_rec, syn_window);\n    if (!eval_lpc_coeffs(temp1, ractx->sp_lpc, 36))\n        colmult(ractx->sp_lpc, ractx->sp_lpc, syn_bw_tab, 36);\n    do_hybrid_window(10, 8, 20, ractx->gain_block, temp2, ractx->gain_hist,\n                     ractx->gain_rec, gain_window);\n    if (!eval_lpc_coeffs(temp2, ractx->gain_lpc, 10))\n        colmult(ractx->gain_lpc, ractx->gain_lpc, gain_bw_tab, 10);\n}', 'static int eval_lpc_coeffs(const float *in, float *tgt, int n)\n{\n    int i, j;\n    double f0, f1, f2;\n    if (in[n] == 0)\n        return -1;\n    if ((f0 = *in) <= 0)\n        return -1;\n    in--;\n    for (i=1; i <= n; i++) {\n        f1 = in[i+1];\n        for (j=0; j < i - 1; j++)\n            f1 += in[i-j]*tgt[j];\n        tgt[i-1] = f2 = -f1/f0;\n        for (j=0; j < i >> 1; j++) {\n            float temp = tgt[j] + tgt[i-j-2]*f2;\n            tgt[i-j-2] += tgt[j]*f2;\n            tgt[j] = temp;\n        }\n        if ((f0 += f1*f2) < 0)\n            return -1;\n    }\n    return 0;\n}']