libavcodec/opus_silk.c:1170: error: Buffer Overrun L1
  Offset: 4 (⇐ 3 + 1) Size: 4 by call to `silk_count_children`.

libavcodec/opus_silk.c:1129:1: Array declaration
1127. }
1128. 
1129. static inline void silk_decode_excitation(SilkContext *s, OpusRangeCoder *rc,
      ^
1130.                                           float* excitationf,
1131.                                           int qoffset_high, int active, int voiced)

libavcodec/opus_silk.c:1170:25: Call
1168.                     silk_count_children(rc, 1, branch[1][b], branch[2]);
1169.                     for (c = 0; c < 2; c++) {
1170.                         silk_count_children(rc, 2, branch[2][c], branch[3]);
                              ^
1171.                         for (d = 0; d < 2; d++) {
1172.                             silk_count_children(rc, 3, branch[3][d], location);

libavcodec/opus_silk.c:1116:1: <Length trace>
1114. }
1115. 
1116. static inline void silk_count_children(OpusRangeCoder *rc, int model, int32_t total,
      ^
1117.                                        int32_t child[2])
1118. {

libavcodec/opus_silk.c:1116:1: Parameter `*child`
  1114. }
  1115. 
  1116. static inline void silk_count_children(OpusRangeCoder *rc, int model, int32_t total,
        ^
  1117.                                        int32_t child[2])
  1118. {

libavcodec/opus_silk.c:1122:9: Array access: Offset: 4 (⇐ 3 + 1) Size: 4 by call to `silk_count_children` 
  1120.         child[0] = opus_rc_getsymbol(rc,
  1121.                        silk_model_pulse_location[model] + (((total - 1 + 5) * (total - 1)) >> 1));
  1122.         child[1] = total - child[0];
                ^
  1123.     } else {
  1124.         child[0] = 0;

static inline void silk_count_children(OpusRangeCoder *rc, int model, int32_t total,
                                       int32_t child[2])
{
    if (total != 0) {
        child[0] = opus_rc_getsymbol(rc,
                       silk_model_pulse_location[model] + (((total - 1 + 5) * (total - 1)) >> 1));
        child[1] = total - child[0];
    } else {
        child[0] = 0;
        child[1] = 0;
    }
}
['static inline void silk_decode_excitation(SilkContext *s, OpusRangeCoder *rc,\n                                          float* excitationf,\n                                          int qoffset_high, int active, int voiced)\n{\n    int i;\n    uint32_t seed;\n    int shellblocks;\n    int ratelevel;\n    uint8_t pulsecount[20];\n    uint8_t lsbcount[20] = {0};\n    int32_t excitation[320];\n    seed = opus_rc_getsymbol(rc, silk_model_lcg_seed);\n    shellblocks = silk_shell_blocks[s->bandwidth][s->subframes >> 2];\n    ratelevel = opus_rc_getsymbol(rc, silk_model_exc_rate[voiced]);\n    for (i = 0; i < shellblocks; i++) {\n        pulsecount[i] = opus_rc_getsymbol(rc, silk_model_pulse_count[ratelevel]);\n        if (pulsecount[i] == 17) {\n            while (pulsecount[i] == 17 && ++lsbcount[i] != 10)\n                pulsecount[i] = opus_rc_getsymbol(rc, silk_model_pulse_count[9]);\n            if (lsbcount[i] == 10)\n                pulsecount[i] = opus_rc_getsymbol(rc, silk_model_pulse_count[10]);\n        }\n    }\n    for (i = 0; i < shellblocks; i++) {\n        if (pulsecount[i] != 0) {\n            int a, b, c, d;\n            int32_t * location = excitation + 16*i;\n            int32_t branch[4][2];\n            branch[0][0] = pulsecount[i];\n            for (a = 0; a < 1; a++) {\n                silk_count_children(rc, 0, branch[0][a], branch[1]);\n                for (b = 0; b < 2; b++) {\n                    silk_count_children(rc, 1, branch[1][b], branch[2]);\n                    for (c = 0; c < 2; c++) {\n                        silk_count_children(rc, 2, branch[2][c], branch[3]);\n                        for (d = 0; d < 2; d++) {\n                            silk_count_children(rc, 3, branch[3][d], location);\n                            location += 2;\n                        }\n                    }\n                }\n            }\n        } else\n            memset(excitation + 16*i, 0, 16*sizeof(int32_t));\n    }\n    for (i = 0; i < shellblocks << 4; i++) {\n        int bit;\n        for (bit = 0; bit < lsbcount[i >> 4]; bit++)\n            excitation[i] = (excitation[i] << 1) |\n                            opus_rc_getsymbol(rc, silk_model_excitation_lsb);\n    }\n    for (i = 0; i < shellblocks << 4; i++) {\n        if (excitation[i] != 0) {\n            int sign = opus_rc_getsymbol(rc, silk_model_excitation_sign[active +\n                                         voiced][qoffset_high][FFMIN(pulsecount[i >> 4], 6)]);\n            if (sign == 0)\n                excitation[i] *= -1;\n        }\n    }\n    for (i = 0; i < shellblocks << 4; i++) {\n        int value = excitation[i];\n        excitation[i] = value * 256 | silk_quant_offset[voiced][qoffset_high];\n        if (value < 0)      excitation[i] += 20;\n        else if (value > 0) excitation[i] -= 20;\n        seed = 196314165 * seed + 907633515;\n        if (seed & 0x80000000)\n            excitation[i] *= -1;\n        seed += value;\n        excitationf[i] = excitation[i] / 8388608.0f;\n    }\n}', 'static inline void silk_count_children(OpusRangeCoder *rc, int model, int32_t total,\n                                       int32_t child[2])\n{\n    if (total != 0) {\n        child[0] = opus_rc_getsymbol(rc,\n                       silk_model_pulse_location[model] + (((total - 1 + 5) * (total - 1)) >> 1));\n        child[1] = total - child[0];\n    } else {\n        child[0] = 0;\n        child[1] = 0;\n    }\n}']