libavcodec/ra288.c:104: error: Buffer Overrun L3
  Offset: [-3, 3] Size: 36.

libavcodec/ra288.c:102:10: <Offset trace>
100.     *ractx->gain_block = 10 * log10(sum) - 32;
101. 
102.     for (i=1; i < 5; i++)
              ^
103.         for (j=i-1; j >= 0; j--)
104.             buffer[i] -= ractx->sp_lpc[i-j-1] * buffer[j];

libavcodec/ra288.c:102:10: Assignment
100.     *ractx->gain_block = 10 * log10(sum) - 32;
101. 
102.     for (i=1; i < 5; i++)
              ^
103.         for (j=i-1; j >= 0; j--)
104.             buffer[i] -= ractx->sp_lpc[i-j-1] * buffer[j];

libavcodec/ra288.c:68:1: <Length trace>
66. }
67. 
68. static void decode(RA288Context *ractx, float gain, int cb_coef)
    ^
69. {
70.     int i, j;

libavcodec/ra288.c:68:1: Parameter `ractx->sp_lpc[*]`
66. }
67. 
68. static void decode(RA288Context *ractx, float gain, int cb_coef)
    ^
69. {
70.     int i, j;

libavcodec/ra288.c:104:26: Array access: Offset: [-3, 3] Size: 36
102.     for (i=1; i < 5; i++)
103.         for (j=i-1; j >= 0; j--)
104.             buffer[i] -= ractx->sp_lpc[i-j-1] * buffer[j];
                              ^
105. 
106.     /* output */

static void decode(RA288Context *ractx, float gain, int cb_coef)
{
    int i, j;
    double sumsum;
    float sum, buffer[5];
    memmove(ractx->sp_block + 5, ractx->sp_block, 36*sizeof(*ractx->sp_block));
    for (i=4; i >= 0; i--)
        ractx->sp_block[i] = -scalar_product_float(ractx->sp_block + i + 1,
                                             ractx->sp_lpc, 36);
    sum = 32. - scalar_product_float(ractx->gain_lpc, ractx->gain_block, 10);
    sum = av_clipf(sum, 0, 60);
    sumsum = exp(sum * 0.1151292546497) * gain;
    for (i=0; i < 5; i++)
        buffer[i] = codetable[cb_coef][i] * sumsum;
    sum = scalar_product_float(buffer, buffer, 5) / 5;
    sum = FFMAX(sum, 1);
    memmove(ractx->gain_block, ractx->gain_block - 1,
            10 * sizeof(*ractx->gain_block));
    *ractx->gain_block = 10 * log10(sum) - 32;
    for (i=1; i < 5; i++)
        for (j=i-1; j >= 0; j--)
            buffer[i] -= ractx->sp_lpc[i-j-1] * buffer[j];
    for (i=0; i < 5; i++)
        ractx->sp_block[4-i] =
            av_clipf(ractx->sp_block[4-i] + buffer[i], -4095, 4095);
}
['static void decode(RA288Context *ractx, float gain, int cb_coef)\n{\n    int i, j;\n    double sumsum;\n    float sum, buffer[5];\n    memmove(ractx->sp_block + 5, ractx->sp_block, 36*sizeof(*ractx->sp_block));\n    for (i=4; i >= 0; i--)\n        ractx->sp_block[i] = -scalar_product_float(ractx->sp_block + i + 1,\n                                             ractx->sp_lpc, 36);\n    sum = 32. - scalar_product_float(ractx->gain_lpc, ractx->gain_block, 10);\n    sum = av_clipf(sum, 0, 60);\n    sumsum = exp(sum * 0.1151292546497) * gain;\n    for (i=0; i < 5; i++)\n        buffer[i] = codetable[cb_coef][i] * sumsum;\n    sum = scalar_product_float(buffer, buffer, 5) / 5;\n    sum = FFMAX(sum, 1);\n    memmove(ractx->gain_block, ractx->gain_block - 1,\n            10 * sizeof(*ractx->gain_block));\n    *ractx->gain_block = 10 * log10(sum) - 32;\n    for (i=1; i < 5; i++)\n        for (j=i-1; j >= 0; j--)\n            buffer[i] -= ractx->sp_lpc[i-j-1] * buffer[j];\n    for (i=0; i < 5; i++)\n        ractx->sp_block[4-i] =\n            av_clipf(ractx->sp_block[4-i] + buffer[i], -4095, 4095);\n}']