libavcodec/sipr16k.c:111: error: Buffer Overrun L3
  Offset: [-1, +oo] (⇐ [16, +oo] + [-17, -6]) Size: 46 by call to `ff_celp_lp_synthesis_filterf`.

libavcodec/sipr16k.c:97:1: Array declaration
95. }
96. 
97. static void postfilter(float* synth, float* iir_mem, float* filt_mem[2],
    ^
98.                        float* mem_preemph)
99. {

libavcodec/sipr16k.c:101:5: Assignment
 99. {
100.     float buf[30 + LP_FILTER_ORDER_16k];
101.     float *tmpbuf = buf + LP_FILTER_ORDER_16k;
         ^
102.     float s;
103.     int i;

libavcodec/sipr16k.c:111:5: Call
109.            LP_FILTER_ORDER_16k*sizeof(*buf));
110. 
111.     ff_celp_lp_synthesis_filterf(tmpbuf, filt_mem[1], synth, 30,
         ^
112.                                  LP_FILTER_ORDER_16k);
113. 

libavcodec/celp_filters.c:83:1: <Offset trace>
81. }
82. 
83. void ff_celp_lp_synthesis_filterf(float *out, const float *filter_coeffs,
    ^
84.                                   const float* in, int buffer_length,
85.                                   int filter_length)

libavcodec/celp_filters.c:83:1: Parameter `filter_length`
  81. }
  82. 
  83. void ff_celp_lp_synthesis_filterf(float *out, const float *filter_coeffs,
      ^
  84.                                   const float* in, int buffer_length,
  85.                                   int filter_length)

libavcodec/celp_filters.c:83:1: <Length trace>
81. }
82. 
83. void ff_celp_lp_synthesis_filterf(float *out, const float *filter_coeffs,
    ^
84.                                   const float* in, int buffer_length,
85.                                   int filter_length)

libavcodec/celp_filters.c:83:1: Parameter `*out`
  81. }
  82. 
  83. void ff_celp_lp_synthesis_filterf(float *out, const float *filter_coeffs,
      ^
  84.                                   const float* in, int buffer_length,
  85.                                   int filter_length)

libavcodec/celp_filters.c:139:24: Array access: Offset: [-1, +oo] (⇐ [16, +oo] + [-17, -6]) Size: 46 by call to `ff_celp_lp_synthesis_filterf` 
  137.             out3 -= val * old_out2;
  138. 
  139.             old_out2 = out[-i-1];
                              ^
  140. 
  141.             val = filter_coeffs[i];

void ff_celp_lp_synthesis_filterf(float *out, const float *filter_coeffs,
                                  const float* in, int buffer_length,
                                  int filter_length)
{
    int i,n;
    float out0, out1, out2, out3;
    float old_out0, old_out1, old_out2, old_out3;
    float a,b,c;
    a = filter_coeffs[0];
    b = filter_coeffs[1];
    c = filter_coeffs[2];
    b -= filter_coeffs[0] * filter_coeffs[0];
    c -= filter_coeffs[1] * filter_coeffs[0];
    c -= filter_coeffs[0] * b;
    old_out0 = out[-4];
    old_out1 = out[-3];
    old_out2 = out[-2];
    old_out3 = out[-1];
    for (n = 0; n <= buffer_length - 4; n+=4) {
        float tmp0,tmp1,tmp2,tmp3;
        float val;
        out0 = in[0];
        out1 = in[1];
        out2 = in[2];
        out3 = in[3];
        out0 -= filter_coeffs[2] * old_out1;
        out1 -= filter_coeffs[2] * old_out2;
        out2 -= filter_coeffs[2] * old_out3;
        out0 -= filter_coeffs[1] * old_out2;
        out1 -= filter_coeffs[1] * old_out3;
        out0 -= filter_coeffs[0] * old_out3;
        val = filter_coeffs[3];
        out0 -= val * old_out0;
        out1 -= val * old_out1;
        out2 -= val * old_out2;
        out3 -= val * old_out3;
        old_out3 = out[-5];
        for (i = 5; i <= filter_length; i += 2) {
            val = filter_coeffs[i-1];
            out0 -= val * old_out3;
            out1 -= val * old_out0;
            out2 -= val * old_out1;
            out3 -= val * old_out2;
            old_out2 = out[-i-1];
            val = filter_coeffs[i];
            out0 -= val * old_out2;
            out1 -= val * old_out3;
            out2 -= val * old_out0;
            out3 -= val * old_out1;
            FFSWAP(float, old_out0, old_out2);
            old_out1 = old_out3;
            old_out3 = out[-i-2];
        }
        tmp0 = out0;
        tmp1 = out1;
        tmp2 = out2;
        tmp3 = out3;
        out3 -= a * tmp2;
        out2 -= a * tmp1;
        out1 -= a * tmp0;
        out3 -= b * tmp1;
        out2 -= b * tmp0;
        out3 -= c * tmp0;
        out[0] = out0;
        out[1] = out1;
        out[2] = out2;
        out[3] = out3;
        old_out0 = out0;
        old_out1 = out1;
        old_out2 = out2;
        old_out3 = out3;
        out += 4;
        in  += 4;
    }
    out -= n;
    in -= n;
    for (; n < buffer_length; n++) {
        out[n] = in[n];
        for (i = 1; i <= filter_length; i++)
            out[n] -= filter_coeffs[i-1] * out[n-i];
    }
}
['static void postfilter(float* synth, float* iir_mem, float* filt_mem[2],\n                       float* mem_preemph)\n{\n    float buf[30 + LP_FILTER_ORDER_16k];\n    float *tmpbuf = buf + LP_FILTER_ORDER_16k;\n    float s;\n    int i;\n    for (i = 0; i < LP_FILTER_ORDER_16k; i++)\n        filt_mem[0][i] = iir_mem[i] * ff_pow_0_5[i];\n    memcpy(tmpbuf - LP_FILTER_ORDER_16k, mem_preemph,\n           LP_FILTER_ORDER_16k*sizeof(*buf));\n    ff_celp_lp_synthesis_filterf(tmpbuf, filt_mem[1], synth, 30,\n                                 LP_FILTER_ORDER_16k);\n    memcpy(synth - LP_FILTER_ORDER_16k, mem_preemph,\n           LP_FILTER_ORDER_16k * sizeof(*synth));\n    ff_celp_lp_synthesis_filterf(synth, filt_mem[0], synth, 2*L_SUBFR_16k,\n                                 LP_FILTER_ORDER_16k);\n    memcpy(mem_preemph, synth + 2*L_SUBFR_16k - LP_FILTER_ORDER_16k,\n           LP_FILTER_ORDER_16k * sizeof(*synth));\n    FFSWAP(float *, filt_mem[0], filt_mem[1]);\n    for (i = 0, s = 0; i < 30; i++, s += 1.0/30)\n        synth[i] = tmpbuf[i] + s * (synth[i] - tmpbuf[i]);\n}', 'void ff_celp_lp_synthesis_filterf(float *out, const float *filter_coeffs,\n                                  const float* in, int buffer_length,\n                                  int filter_length)\n{\n    int i,n;\n    float out0, out1, out2, out3;\n    float old_out0, old_out1, old_out2, old_out3;\n    float a,b,c;\n    a = filter_coeffs[0];\n    b = filter_coeffs[1];\n    c = filter_coeffs[2];\n    b -= filter_coeffs[0] * filter_coeffs[0];\n    c -= filter_coeffs[1] * filter_coeffs[0];\n    c -= filter_coeffs[0] * b;\n    old_out0 = out[-4];\n    old_out1 = out[-3];\n    old_out2 = out[-2];\n    old_out3 = out[-1];\n    for (n = 0; n <= buffer_length - 4; n+=4) {\n        float tmp0,tmp1,tmp2,tmp3;\n        float val;\n        out0 = in[0];\n        out1 = in[1];\n        out2 = in[2];\n        out3 = in[3];\n        out0 -= filter_coeffs[2] * old_out1;\n        out1 -= filter_coeffs[2] * old_out2;\n        out2 -= filter_coeffs[2] * old_out3;\n        out0 -= filter_coeffs[1] * old_out2;\n        out1 -= filter_coeffs[1] * old_out3;\n        out0 -= filter_coeffs[0] * old_out3;\n        val = filter_coeffs[3];\n        out0 -= val * old_out0;\n        out1 -= val * old_out1;\n        out2 -= val * old_out2;\n        out3 -= val * old_out3;\n        old_out3 = out[-5];\n        for (i = 5; i <= filter_length; i += 2) {\n            val = filter_coeffs[i-1];\n            out0 -= val * old_out3;\n            out1 -= val * old_out0;\n            out2 -= val * old_out1;\n            out3 -= val * old_out2;\n            old_out2 = out[-i-1];\n            val = filter_coeffs[i];\n            out0 -= val * old_out2;\n            out1 -= val * old_out3;\n            out2 -= val * old_out0;\n            out3 -= val * old_out1;\n            FFSWAP(float, old_out0, old_out2);\n            old_out1 = old_out3;\n            old_out3 = out[-i-2];\n        }\n        tmp0 = out0;\n        tmp1 = out1;\n        tmp2 = out2;\n        tmp3 = out3;\n        out3 -= a * tmp2;\n        out2 -= a * tmp1;\n        out1 -= a * tmp0;\n        out3 -= b * tmp1;\n        out2 -= b * tmp0;\n        out3 -= c * tmp0;\n        out[0] = out0;\n        out[1] = out1;\n        out[2] = out2;\n        out[3] = out3;\n        old_out0 = out0;\n        old_out1 = out1;\n        old_out2 = out2;\n        old_out3 = out3;\n        out += 4;\n        in  += 4;\n    }\n    out -= n;\n    in -= n;\n    for (; n < buffer_length; n++) {\n        out[n] = in[n];\n        for (i = 1; i <= filter_length; i++)\n            out[n] -= filter_coeffs[i-1] * out[n-i];\n    }\n}']