libavcodec/wmv2.c:89: error: Buffer Overrun L2
  Offset: [5, 61] (⇐ [3, 59] + 2) Size: 6 by call to `wmv2_add_block`.

libavcodec/wmv2.c:89:5: Call
87.     wmv2_add_block(w, block1[1], dest_y + 8,                   s->linesize, 1);
88.     wmv2_add_block(w, block1[2], dest_y + 8 * s->linesize,     s->linesize, 2);
89.     wmv2_add_block(w, block1[3], dest_y + 8 + 8 * s->linesize, s->linesize, 3);
        ^
90. 
91.     if (s->avctx->flags & CODEC_FLAG_GRAY)

libavcodec/wmv2.c:55:1: Parameter `n`
  53. }
  54. 
  55. static void wmv2_add_block(Wmv2Context *w, int16_t *block1,
      ^
  56.                            uint8_t *dst, int stride, int n)
  57. {

libavcodec/wmv2.c:72:13: Call
  70.         case 2:
  71.             ff_simple_idct48_add(dst, stride, block1);
  72.             ff_simple_idct48_add(dst + 4, stride, w->abt_block2[n]);
                  ^
  73.             s->bdsp.clear_block(w->abt_block2[n]);
  74.             break;

libavcodec/simple_idct.c:191:1: Parameter `*block`
    189. }
    190. 
    191. void ff_simple_idct48_add(uint8_t *dest, int line_size, int16_t *block)
         ^
    192. {
    193.     int i;

libavcodec/simple_idct.c:197:9: Call
    195.     /* IDCT4 on each line */
    196.     for(i=0; i<8; i++) {
    197.         idct4row(block + i*8);
                 ^
    198.     }
    199. 

libavcodec/simple_idct.c:158:1: <Length trace>
156. #define R3 R_FIX(0.5)
157. #define R_SHIFT 11
158. static inline void idct4row(int16_t *row)
     ^
159. {
160.     int c0, c1, c2, c3, a0, a1, a2, a3;

libavcodec/simple_idct.c:158:1: Parameter `*row`
      156. #define R3 R_FIX(0.5)
      157. #define R_SHIFT 11
      158. static inline void idct4row(int16_t *row)
           ^
      159. {
      160.     int c0, c1, c2, c3, a0, a1, a2, a3;

libavcodec/simple_idct.c:164:10: Array access: Offset: [5, 61] (⇐ [3, 59] + 2) Size: 6 by call to `wmv2_add_block` 
      162.     a0 = row[0];
      163.     a1 = row[1];
      164.     a2 = row[2];
                    ^
      165.     a3 = row[3];
      166.     c0 = (a0 + a2)*R3 + (1 << (R_SHIFT - 1));

static inline void idct4row(int16_t *row)
{
    int c0, c1, c2, c3, a0, a1, a2, a3;
    a0 = row[0];
    a1 = row[1];
    a2 = row[2];
    a3 = row[3];
    c0 = (a0 + a2)*R3 + (1 << (R_SHIFT - 1));
    c2 = (a0 - a2)*R3 + (1 << (R_SHIFT - 1));
    c1 = a1 * R1 + a3 * R2;
    c3 = a1 * R2 - a3 * R1;
    row[0]= (c0 + c1) >> R_SHIFT;
    row[1]= (c2 + c3) >> R_SHIFT;
    row[2]= (c2 - c3) >> R_SHIFT;
    row[3]= (c0 - c1) >> R_SHIFT;
}
['void ff_wmv2_add_mb(MpegEncContext *s, int16_t block1[6][64],\n                    uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr)\n{\n    Wmv2Context *const w = (Wmv2Context *) s;\n    wmv2_add_block(w, block1[0], dest_y,                       s->linesize, 0);\n    wmv2_add_block(w, block1[1], dest_y + 8,                   s->linesize, 1);\n    wmv2_add_block(w, block1[2], dest_y + 8 * s->linesize,     s->linesize, 2);\n    wmv2_add_block(w, block1[3], dest_y + 8 + 8 * s->linesize, s->linesize, 3);\n    if (s->avctx->flags & CODEC_FLAG_GRAY)\n        return;\n    wmv2_add_block(w, block1[4], dest_cb, s->uvlinesize, 4);\n    wmv2_add_block(w, block1[5], dest_cr, s->uvlinesize, 5);\n}', 'static void wmv2_add_block(Wmv2Context *w, int16_t *block1,\n                           uint8_t *dst, int stride, int n)\n{\n    MpegEncContext *const s = &w->s;\n    if (s->block_last_index[n] >= 0) {\n        switch (w->abt_type_table[n]) {\n        case 0:\n            w->wdsp.idct_add(dst, stride, block1);\n            break;\n        case 1:\n            ff_simple_idct84_add(dst, stride, block1);\n            ff_simple_idct84_add(dst + 4 * stride, stride, w->abt_block2[n]);\n            s->bdsp.clear_block(w->abt_block2[n]);\n            break;\n        case 2:\n            ff_simple_idct48_add(dst, stride, block1);\n            ff_simple_idct48_add(dst + 4, stride, w->abt_block2[n]);\n            s->bdsp.clear_block(w->abt_block2[n]);\n            break;\n        default:\n            av_log(s->avctx, AV_LOG_ERROR, "internal error in WMV2 abt\\n");\n        }\n    }\n}', 'void ff_simple_idct48_add(uint8_t *dest, int line_size, int16_t *block)\n{\n    int i;\n    for(i=0; i<8; i++) {\n        idct4row(block + i*8);\n    }\n    for(i=0; i<4; i++){\n        idctSparseColAdd_8(dest + i, line_size, block + i);\n    }\n}', 'static inline void idct4row(int16_t *row)\n{\n    int c0, c1, c2, c3, a0, a1, a2, a3;\n    a0 = row[0];\n    a1 = row[1];\n    a2 = row[2];\n    a3 = row[3];\n    c0 = (a0 + a2)*R3 + (1 << (R_SHIFT - 1));\n    c2 = (a0 - a2)*R3 + (1 << (R_SHIFT - 1));\n    c1 = a1 * R1 + a3 * R2;\n    c3 = a1 * R2 - a3 * R1;\n    row[0]= (c0 + c1) >> R_SHIFT;\n    row[1]= (c2 + c3) >> R_SHIFT;\n    row[2]= (c2 - c3) >> R_SHIFT;\n    row[3]= (c0 - c1) >> R_SHIFT;\n}']