libavcodec/vp8.c:816: error: Buffer Overrun L1
  Offset: [9, 10] Size: 3.

libavcodec/vp8.c:815:31: <Offset trace>
813.                     }
814.                 } else {    // DCT_CAT3 and up
815.                     int a   = vp56_rac_get_prob(&c, token_prob[8]);
                                   ^
816.                     int b   = vp56_rac_get_prob(&c, token_prob[9 + a]);
817.                     int cat = (a << 1) + b;

libavcodec/vp8.c:815:31: Call
813.                     }
814.                 } else {    // DCT_CAT3 and up
815.                     int a   = vp56_rac_get_prob(&c, token_prob[8]);
                                   ^
816.                     int b   = vp56_rac_get_prob(&c, token_prob[9 + a]);
817.                     int cat = (a << 1) + b;

libavcodec/vp56.h:250:15: Assignment
  248.     unsigned int low = 1 + (((c->high - 1) * prob) >> 8);
  249.     unsigned int low_shift = low << 16;
  250.     int bit = code_word >= low_shift;
                     ^
  251. 
  252.     c->high = bit ? c->high - low : low;

libavcodec/vp56.h:250:5: Assignment
  248.     unsigned int low = 1 + (((c->high - 1) * prob) >> 8);
  249.     unsigned int low_shift = low << 16;
  250.     int bit = code_word >= low_shift;
           ^
  251. 
  252.     c->high = bit ? c->high - low : low;

libavcodec/vp56.h:255:5: Assignment
  253.     c->code_word = bit ? code_word - low_shift : code_word;
  254. 
  255.     return bit;
           ^
  256. }
  257. #endif

libavcodec/vp8.c:815:21: Assignment
813.                     }
814.                 } else {    // DCT_CAT3 and up
815.                     int a   = vp56_rac_get_prob(&c, token_prob[8]);
                         ^
816.                     int b   = vp56_rac_get_prob(&c, token_prob[9 + a]);
817.                     int cat = (a << 1) + b;

libavcodec/vp8.c:775:1: <Length trace>
773.  *         otherwise, the index of the last coeff decoded plus one
774.  */
775. static int decode_block_coeffs_internal(VP56RangeCoder *r, int16_t block[16],
     ^
776.                                         uint8_t probs[16][3][NUM_DCT_TOKENS - 1],
777.                                         int i, uint8_t *token_prob,

libavcodec/vp8.c:775:1: Parameter `*token_prob`
773.  *         otherwise, the index of the last coeff decoded plus one
774.  */
775. static int decode_block_coeffs_internal(VP56RangeCoder *r, int16_t block[16],
     ^
776.                                         uint8_t probs[16][3][NUM_DCT_TOKENS - 1],
777.                                         int i, uint8_t *token_prob,

libavcodec/vp8.c:816:53: Array access: Offset: [9, 10] Size: 3
814.                 } else {    // DCT_CAT3 and up
815.                     int a   = vp56_rac_get_prob(&c, token_prob[8]);
816.                     int b   = vp56_rac_get_prob(&c, token_prob[9 + a]);
                                                         ^
817.                     int cat = (a << 1) + b;
818.                     coeff  = 3 + (8 << cat);

static int decode_block_coeffs_internal(VP56RangeCoder *r, int16_t block[16],
                                        uint8_t probs[16][3][NUM_DCT_TOKENS - 1],
                                        int i, uint8_t *token_prob,
                                        int16_t qmul[2])
{
    VP56RangeCoder c = *r;
    goto skip_eob;
    do {
        int coeff;
        if (!vp56_rac_get_prob_branchy(&c, token_prob[0]))
            break;
skip_eob:
        if (!vp56_rac_get_prob_branchy(&c, token_prob[1])) {
            if (++i == 16)
                break;
            token_prob = probs[i][0];
            goto skip_eob;
        }
        if (!vp56_rac_get_prob_branchy(&c, token_prob[2])) {
            coeff = 1;
            token_prob = probs[i + 1][1];
        } else {
            if (!vp56_rac_get_prob_branchy(&c, token_prob[3])) {
                coeff = vp56_rac_get_prob_branchy(&c, token_prob[4]);
                if (coeff)
                    coeff += vp56_rac_get_prob(&c, token_prob[5]);
                coeff += 2;
            } else {
                if (!vp56_rac_get_prob_branchy(&c, token_prob[6])) {
                    if (!vp56_rac_get_prob_branchy(&c, token_prob[7])) {
                        coeff = 5 + vp56_rac_get_prob(&c, vp8_dct_cat1_prob[0]);
                    } else {
                        coeff  = 7;
                        coeff += vp56_rac_get_prob(&c, vp8_dct_cat2_prob[0]) << 1;
                        coeff += vp56_rac_get_prob(&c, vp8_dct_cat2_prob[1]);
                    }
                } else {
                    int a   = vp56_rac_get_prob(&c, token_prob[8]);
                    int b   = vp56_rac_get_prob(&c, token_prob[9 + a]);
                    int cat = (a << 1) + b;
                    coeff  = 3 + (8 << cat);
                    coeff += vp8_rac_get_coeff(&c, ff_vp8_dct_cat_prob[cat]);
                }
            }
            token_prob = probs[i + 1][2];
        }
        block[zigzag_scan[i]] = (vp8_rac_get(&c) ? -coeff : coeff) * qmul[!!i];
    } while (++i < 16);
    *r = c;
    return i;
}
['static int decode_block_coeffs_internal(VP56RangeCoder *r, int16_t block[16],\n                                        uint8_t probs[16][3][NUM_DCT_TOKENS - 1],\n                                        int i, uint8_t *token_prob,\n                                        int16_t qmul[2])\n{\n    VP56RangeCoder c = *r;\n    goto skip_eob;\n    do {\n        int coeff;\n        if (!vp56_rac_get_prob_branchy(&c, token_prob[0]))\n            break;\nskip_eob:\n        if (!vp56_rac_get_prob_branchy(&c, token_prob[1])) {\n            if (++i == 16)\n                break;\n            token_prob = probs[i][0];\n            goto skip_eob;\n        }\n        if (!vp56_rac_get_prob_branchy(&c, token_prob[2])) {\n            coeff = 1;\n            token_prob = probs[i + 1][1];\n        } else {\n            if (!vp56_rac_get_prob_branchy(&c, token_prob[3])) {\n                coeff = vp56_rac_get_prob_branchy(&c, token_prob[4]);\n                if (coeff)\n                    coeff += vp56_rac_get_prob(&c, token_prob[5]);\n                coeff += 2;\n            } else {\n                if (!vp56_rac_get_prob_branchy(&c, token_prob[6])) {\n                    if (!vp56_rac_get_prob_branchy(&c, token_prob[7])) {\n                        coeff = 5 + vp56_rac_get_prob(&c, vp8_dct_cat1_prob[0]);\n                    } else {\n                        coeff  = 7;\n                        coeff += vp56_rac_get_prob(&c, vp8_dct_cat2_prob[0]) << 1;\n                        coeff += vp56_rac_get_prob(&c, vp8_dct_cat2_prob[1]);\n                    }\n                } else {\n                    int a   = vp56_rac_get_prob(&c, token_prob[8]);\n                    int b   = vp56_rac_get_prob(&c, token_prob[9 + a]);\n                    int cat = (a << 1) + b;\n                    coeff  = 3 + (8 << cat);\n                    coeff += vp8_rac_get_coeff(&c, ff_vp8_dct_cat_prob[cat]);\n                }\n            }\n            token_prob = probs[i + 1][2];\n        }\n        block[zigzag_scan[i]] = (vp8_rac_get(&c) ? -coeff : coeff) * qmul[!!i];\n    } while (++i < 16);\n    *r = c;\n    return i;\n}', 'static av_always_inline int vp56_rac_get_prob(VP56RangeCoder *c, uint8_t prob)\n{\n    unsigned int code_word = vp56_rac_renorm(c);\n    unsigned int low = 1 + (((c->high - 1) * prob) >> 8);\n    unsigned int low_shift = low << 16;\n    int bit = code_word >= low_shift;\n    c->high = bit ? c->high - low : low;\n    c->code_word = bit ? code_word - low_shift : code_word;\n    return bit;\n}']