libavcodec/vp8.c:981: error: Buffer Overrun L2
  Offset: [2, 4] (⇐ 2 + [0, 2]) Size: 3 by call to `vp8_mc`.

libavcodec/vp8.c:949:1: Parameter `s->put_pixels_tab[*]`
947.  * Apply motion vectors to prediction buffer, chapter 18.
948.  */
949. static void inter_predict(VP8Context *s, uint8_t *dst[3], VP8Macroblock *mb,
     ^
950.                           int mb_x, int mb_y)
951. {

libavcodec/vp8.c:981:17: Call
979.         for (y = 0; y < 4; y++) {
980.             for (x = 0; x < 4; x++) {
981.                 vp8_mc(s, 1, dst[0] + 4*y*s->linesize + x*4,
                     ^
982.                        s->framep[mb->ref_frame]->data[0], &mb->bmv[4*y + x],
983.                        4*x + x_off, 4*y + y_off, 4, 4,

libavcodec/vp8.c:926:35: <Offset trace>
924.                           vp8_mc_func mc_func[3][3])
925. {
926.     static const uint8_t idx[8] = { 0, 1, 2, 1, 2, 1, 2, 1 };
                                       ^
927.     int mx = (mv->x << luma)&7, mx_idx = idx[mx];
928.     int my = (mv->y << luma)&7, my_idx = idx[my];

libavcodec/vp8.c:926:35: Assignment
  924.                           vp8_mc_func mc_func[3][3])
  925. {
  926.     static const uint8_t idx[8] = { 0, 1, 2, 1, 2, 1, 2, 1 };
                                         ^
  927.     int mx = (mv->x << luma)&7, mx_idx = idx[mx];
  928.     int my = (mv->y << luma)&7, my_idx = idx[my];

libavcodec/vp8.c:928:5: Assignment
  926.     static const uint8_t idx[8] = { 0, 1, 2, 1, 2, 1, 2, 1 };
  927.     int mx = (mv->x << luma)&7, mx_idx = idx[mx];
  928.     int my = (mv->y << luma)&7, my_idx = idx[my];
           ^
  929. 
  930.     x_off += mv->x >> (3 - luma);

libavcodec/vp8.c:920:1: <Length trace>
918.  * @param linesize size of a single line of plane data, including padding
919.  */
920. static inline void vp8_mc(VP8Context *s, int luma,
     ^
921.                           uint8_t *dst, uint8_t *src, const VP56mv *mv,
922.                           int x_off, int y_off, int block_w, int block_h,

libavcodec/vp8.c:920:1: Parameter `*mc_func`
  918.  * @param linesize size of a single line of plane data, including padding
  919.  */
  920. static inline void vp8_mc(VP8Context *s, int luma,
       ^
  921.                           uint8_t *dst, uint8_t *src, const VP56mv *mv,
  922.                           int x_off, int y_off, int block_w, int block_h,

libavcodec/vp8.c:943:5: Array access: Offset: [2, 4] (⇐ 2 + [0, 2]) Size: 3 by call to `vp8_mc` 
  941.     }
  942. 
  943.     mc_func[my_idx][mx_idx](dst, linesize, src, linesize, block_h, mx, my);
           ^
  944. }
  945. 

static inline void vp8_mc(VP8Context *s, int luma,
                          uint8_t *dst, uint8_t *src, const VP56mv *mv,
                          int x_off, int y_off, int block_w, int block_h,
                          int width, int height, int linesize,
                          vp8_mc_func mc_func[3][3])
{
    static const uint8_t idx[8] = { 0, 1, 2, 1, 2, 1, 2, 1 };
    int mx = (mv->x << luma)&7, mx_idx = idx[mx];
    int my = (mv->y << luma)&7, my_idx = idx[my];
    x_off += mv->x >> (3 - luma);
    y_off += mv->y >> (3 - luma);
    src += y_off * linesize + x_off;
    if (x_off < 2 || x_off >= width  - block_w - 3 ||
        y_off < 2 || y_off >= height - block_h - 3) {
        ff_emulated_edge_mc(s->edge_emu_buffer, src - 2 * linesize - 2, linesize,
                            block_w + 5, block_h + 5,
                            x_off - 2, y_off - 2, width, height);
        src = s->edge_emu_buffer + 2 + linesize * 2;
    }
    mc_func[my_idx][mx_idx](dst, linesize, src, linesize, block_h, mx, my);
}
['static void inter_predict(VP8Context *s, uint8_t *dst[3], VP8Macroblock *mb,\n                          int mb_x, int mb_y)\n{\n    int x_off = mb_x << 4, y_off = mb_y << 4;\n    int width = 16*s->mb_width, height = 16*s->mb_height;\n    VP56mv uvmv;\n    if (mb->mode < VP8_MVMODE_SPLIT) {\n        vp8_mc(s, 1, dst[0], s->framep[mb->ref_frame]->data[0], &mb->mv,\n               x_off, y_off, 16, 16, width, height, s->linesize,\n               s->put_pixels_tab[0]);\n        uvmv = mb->mv;\n        if (s->profile == 3) {\n            uvmv.x &= ~7;\n            uvmv.y &= ~7;\n        }\n        x_off >>= 1; y_off >>= 1; width >>= 1; height >>= 1;\n        vp8_mc(s, 0, dst[1], s->framep[mb->ref_frame]->data[1], &uvmv,\n               x_off, y_off, 8, 8, width, height, s->uvlinesize,\n               s->put_pixels_tab[1]);\n        vp8_mc(s, 0, dst[2], s->framep[mb->ref_frame]->data[2], &uvmv,\n               x_off, y_off, 8, 8, width, height, s->uvlinesize,\n               s->put_pixels_tab[1]);\n    } else {\n        int x, y;\n        for (y = 0; y < 4; y++) {\n            for (x = 0; x < 4; x++) {\n                vp8_mc(s, 1, dst[0] + 4*y*s->linesize + x*4,\n                       s->framep[mb->ref_frame]->data[0], &mb->bmv[4*y + x],\n                       4*x + x_off, 4*y + y_off, 4, 4,\n                       width, height, s->linesize,\n                       s->put_pixels_tab[2]);\n            }\n        }\n        x_off >>= 1; y_off >>= 1; width >>= 1; height >>= 1;\n        for (y = 0; y < 2; y++) {\n            for (x = 0; x < 2; x++) {\n                uvmv.x = mb->bmv[ 2*y    * 4 + 2*x  ].x +\n                         mb->bmv[ 2*y    * 4 + 2*x+1].x +\n                         mb->bmv[(2*y+1) * 4 + 2*x  ].x +\n                         mb->bmv[(2*y+1) * 4 + 2*x+1].x;\n                uvmv.y = mb->bmv[ 2*y    * 4 + 2*x  ].y +\n                         mb->bmv[ 2*y    * 4 + 2*x+1].y +\n                         mb->bmv[(2*y+1) * 4 + 2*x  ].y +\n                         mb->bmv[(2*y+1) * 4 + 2*x+1].y;\n                uvmv.x = (uvmv.x + 2 + (uvmv.x >> (INT_BIT-1))) >> 2;\n                uvmv.y = (uvmv.y + 2 + (uvmv.y >> (INT_BIT-1))) >> 2;\n                if (s->profile == 3) {\n                    uvmv.x &= ~7;\n                    uvmv.y &= ~7;\n                }\n                vp8_mc(s, 0, dst[1] + 4*y*s->uvlinesize + x*4,\n                       s->framep[mb->ref_frame]->data[1], &uvmv,\n                       4*x + x_off, 4*y + y_off, 4, 4,\n                       width, height, s->uvlinesize,\n                       s->put_pixels_tab[2]);\n                vp8_mc(s, 0, dst[2] + 4*y*s->uvlinesize + x*4,\n                       s->framep[mb->ref_frame]->data[2], &uvmv,\n                       4*x + x_off, 4*y + y_off, 4, 4,\n                       width, height, s->uvlinesize,\n                       s->put_pixels_tab[2]);\n            }\n        }\n    }\n}', 'static inline void vp8_mc(VP8Context *s, int luma,\n                          uint8_t *dst, uint8_t *src, const VP56mv *mv,\n                          int x_off, int y_off, int block_w, int block_h,\n                          int width, int height, int linesize,\n                          vp8_mc_func mc_func[3][3])\n{\n    static const uint8_t idx[8] = { 0, 1, 2, 1, 2, 1, 2, 1 };\n    int mx = (mv->x << luma)&7, mx_idx = idx[mx];\n    int my = (mv->y << luma)&7, my_idx = idx[my];\n    x_off += mv->x >> (3 - luma);\n    y_off += mv->y >> (3 - luma);\n    src += y_off * linesize + x_off;\n    if (x_off < 2 || x_off >= width  - block_w - 3 ||\n        y_off < 2 || y_off >= height - block_h - 3) {\n        ff_emulated_edge_mc(s->edge_emu_buffer, src - 2 * linesize - 2, linesize,\n                            block_w + 5, block_h + 5,\n                            x_off - 2, y_off - 2, width, height);\n        src = s->edge_emu_buffer + 2 + linesize * 2;\n    }\n    mc_func[my_idx][mx_idx](dst, linesize, src, linesize, block_h, mx, my);\n}']