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

libavcodec/vp8.c:1043:1: Parameter `s->put_pixels_tab[*]`
1041. }
1042. 
1043. static inline void vp8_mc_part(VP8Context *s, uint8_t *dst[3],
      ^
1044.                                AVFrame *ref_frame, int x_off, int y_off,
1045.                                int bx_off, int by_off,

libavcodec/vp8.c:1066:5: Call
1064.     width   >>= 1; height  >>= 1;
1065.     block_w >>= 1; block_h >>= 1;
1066.     vp8_mc(s, 0, dst[1] + by_off * s->uvlinesize + bx_off,
          ^
1067.            ref_frame->data[1], &uvmv, x_off + bx_off, y_off + by_off,
1068.            block_w, block_h, width, height, s->uvlinesize,

libavcodec/vp8.c:1022:39: <Offset trace>
1020. {
1021.     if (AV_RN32A(mv)) {
1022.         static const uint8_t idx[8] = { 0, 1, 2, 1, 2, 1, 2, 1 };
                                            ^
1023.         int mx = (mv->x << luma)&7, mx_idx = idx[mx];
1024.         int my = (mv->y << luma)&7, my_idx = idx[my];

libavcodec/vp8.c:1022:39: Assignment
  1020. {
  1021.     if (AV_RN32A(mv)) {
  1022.         static const uint8_t idx[8] = { 0, 1, 2, 1, 2, 1, 2, 1 };
                                              ^
  1023.         int mx = (mv->x << luma)&7, mx_idx = idx[mx];
  1024.         int my = (mv->y << luma)&7, my_idx = idx[my];

libavcodec/vp8.c:1024:9: Assignment
  1022.         static const uint8_t idx[8] = { 0, 1, 2, 1, 2, 1, 2, 1 };
  1023.         int mx = (mv->x << luma)&7, mx_idx = idx[mx];
  1024.         int my = (mv->y << luma)&7, my_idx = idx[my];
                ^
  1025. 
  1026.         x_off += mv->x >> (3 - luma);

libavcodec/vp8.c:1015:1: <Length trace>
1013.  * @param mc_func motion compensation function pointers (bilinear or sixtap MC)
1014.  */
1015. static inline void vp8_mc(VP8Context *s, int luma,
      ^
1016.                           uint8_t *dst, uint8_t *src, const VP56mv *mv,
1017.                           int x_off, int y_off, int block_w, int block_h,

libavcodec/vp8.c:1015:1: Parameter `*mc_func`
  1013.  * @param mc_func motion compensation function pointers (bilinear or sixtap MC)
  1014.  */
  1015. static inline void vp8_mc(VP8Context *s, int luma,
        ^
  1016.                           uint8_t *dst, uint8_t *src, const VP56mv *mv,
  1017.                           int x_off, int y_off, int block_w, int block_h,

libavcodec/vp8.c:1038:9: Array access: Offset: [1, 4] (⇐ [1, 2] + [0, 2]) Size: 3 by call to `vp8_mc` 
  1036.             src = s->edge_emu_buffer + 2 + linesize * 2;
  1037.         }
  1038.         mc_func[my_idx][mx_idx](dst, linesize, src, linesize, block_h, mx, my);
                ^
  1039.     } else
  1040.         mc_func[0][0](dst, linesize, src + y_off * linesize + x_off, linesize, block_h, 0, 0);

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])
{
    if (AV_RN32A(mv)) {
        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);
    } else
        mc_func[0][0](dst, linesize, src + y_off * linesize + x_off, linesize, block_h, 0, 0);
}
['static inline void vp8_mc_part(VP8Context *s, uint8_t *dst[3],\n                               AVFrame *ref_frame, int x_off, int y_off,\n                               int bx_off, int by_off,\n                               int block_w, int block_h,\n                               int width, int height, VP56mv *mv)\n{\n    VP56mv uvmv = *mv;\n    vp8_mc(s, 1, dst[0] + by_off * s->linesize + bx_off,\n           ref_frame->data[0], mv, x_off + bx_off, y_off + by_off,\n           block_w, block_h, width, height, s->linesize,\n           s->put_pixels_tab[block_w == 8]);\n    if (s->profile == 3) {\n        uvmv.x &= ~7;\n        uvmv.y &= ~7;\n    }\n    x_off   >>= 1; y_off   >>= 1;\n    bx_off  >>= 1; by_off  >>= 1;\n    width   >>= 1; height  >>= 1;\n    block_w >>= 1; block_h >>= 1;\n    vp8_mc(s, 0, dst[1] + by_off * s->uvlinesize + bx_off,\n           ref_frame->data[1], &uvmv, x_off + bx_off, y_off + by_off,\n           block_w, block_h, width, height, s->uvlinesize,\n           s->put_pixels_tab[1 + (block_w == 4)]);\n    vp8_mc(s, 0, dst[2] + by_off * s->uvlinesize + bx_off,\n           ref_frame->data[2], &uvmv, x_off + bx_off, y_off + by_off,\n           block_w, block_h, width, height, s->uvlinesize,\n           s->put_pixels_tab[1 + (block_w == 4)]);\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    if (AV_RN32A(mv)) {\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    } else\n        mc_func[0][0](dst, linesize, src + y_off * linesize + x_off, linesize, block_h, 0, 0);\n}']