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

libavcodec/vp8.c:958:1: Parameter `s->put_pixels_tab[*]`
956. }
957. 
958. static inline void vp8_mc_part(VP8Context *s, uint8_t *dst[3],
     ^
959.                                AVFrame *ref_frame, int x_off, int y_off,
960.                                int bx_off, int by_off,

libavcodec/vp8.c:981:5: Call
979.     width   >>= 1; height  >>= 1;
980.     block_w >>= 1; block_h >>= 1;
981.     vp8_mc(s, 0, dst[1] + by_off * s->uvlinesize + bx_off,
         ^
982.            ref_frame->data[1], &uvmv, x_off + bx_off, y_off + by_off,
983.            block_w, block_h, width, height, s->uvlinesize,

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

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

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

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

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

libavcodec/vp8.c:955:5: Array access: Offset: [1, 4] (⇐ [1, 2] + [0, 2]) Size: 3 by call to `vp8_mc` 
  953.     }
  954. 
  955.     mc_func[my_idx][mx_idx](dst, linesize, src, linesize, block_h, mx, my);
           ^
  956. }
  957. 

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 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    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}']