libavcodec/wmv2.c:70: error: Buffer Overrun L1
  Offset: [12, 36] (⇐ [5, 29] + 7) Size: 6 by call to `wmv2_add_block`.

libavcodec/wmv2.c:70:5: Call
68. 
69.     wmv2_add_block(w, block1[4], dest_cb                   , s->uvlinesize, 4);
70.     wmv2_add_block(w, block1[5], dest_cr                   , s->uvlinesize, 5);
        ^
71. }
72. 

libavcodec/wmv2.c:35:1: Parameter `n`
  33. }
  34. 
  35. static void wmv2_add_block(Wmv2Context *w, DCTELEM *block1, uint8_t *dst, int stride, int n){
      ^
  36.     MpegEncContext * const s= &w->s;
  37. 

libavcodec/wmv2.c:45:9: Call
  43.     case 1:
  44.         ff_simple_idct84_add(dst           , stride, block1);
  45.         ff_simple_idct84_add(dst + 4*stride, stride, w->abt_block2[n]);
              ^
  46.         s->dsp.clear_block(w->abt_block2[n]);
  47.         break;

libavcodec/simple_idct.c:180:1: Parameter `*block`
    178. }
    179. 
    180. void ff_simple_idct84_add(uint8_t *dest, int line_size, DCTELEM *block)
         ^
    181. {
    182.     int i;

libavcodec/simple_idct.c:186:9: Call
    184.     /* IDCT8 on each line */
    185.     for(i=0; i<4; i++) {
    186.         idctRowCondDC_8(block + i*8);
                 ^
    187.     }
    188. 

libavcodec/simple_idct_template.c:88:1: <Length trace>
86. #endif
87. 
88. static inline void FUNC(idctRowCondDC)(DCTELEM *row)
    ^
89. {
90.         int a0, a1, a2, a3, b0, b1, b2, b3;

libavcodec/simple_idct_template.c:88:1: Parameter `*row`
      86. #endif
      87. 
      88. static inline void FUNC(idctRowCondDC)(DCTELEM *row)
          ^
      89. {
      90.         int a0, a1, a2, a3, b0, b1, b2, b3;

libavcodec/simple_idct_template.c:142:13: Array access: Offset: [12, 36] (⇐ [5, 29] + 7) Size: 6 by call to `wmv2_add_block` 
      140. 
      141.             MAC(b0, W5, row[5]);
      142.             MAC(b0, W7, row[7]);
                       ^
      143. 
      144.             MAC(b1, -W1, row[5]);

static inline void FUNC(idctRowCondDC)(DCTELEM *row)
{
        int a0, a1, a2, a3, b0, b1, b2, b3;
#if HAVE_FAST_64BIT
#define ROW0_MASK (0xffffLL << 48 * HAVE_BIGENDIAN)
        if (((((uint64_t *)row)[0] & ~ROW0_MASK) | ((uint64_t *)row)[1]) == 0) {
            uint64_t temp = (row[0] << DC_SHIFT) & 0xffff;
            temp += temp << 16;
            temp += temp << 32;
            ((uint64_t *)row)[0] = temp;
            ((uint64_t *)row)[1] = temp;
            return;
        }
#else
        if (!(((uint32_t*)row)[1] |
              ((uint32_t*)row)[2] |
              ((uint32_t*)row)[3] |
              row[1])) {
            uint32_t temp = (row[0] << DC_SHIFT) & 0xffff;
            temp += temp << 16;
            ((uint32_t*)row)[0]=((uint32_t*)row)[1] =
                ((uint32_t*)row)[2]=((uint32_t*)row)[3] = temp;
            return;
        }
#endif
        a0 = (W4 * row[0]) + (1 << (ROW_SHIFT - 1));
        a1 = a0;
        a2 = a0;
        a3 = a0;
        a0 += W2 * row[2];
        a1 += W6 * row[2];
        a2 -= W6 * row[2];
        a3 -= W2 * row[2];
        b0 = MUL(W1, row[1]);
        MAC(b0, W3, row[3]);
        b1 = MUL(W3, row[1]);
        MAC(b1, -W7, row[3]);
        b2 = MUL(W5, row[1]);
        MAC(b2, -W1, row[3]);
        b3 = MUL(W7, row[1]);
        MAC(b3, -W5, row[3]);
        if (AV_RN64A(row + 4)) {
            a0 += W4*row[4] + W6*row[6];
            a1 += - W4*row[4] - W2*row[6];
            a2 += - W4*row[4] + W2*row[6];
            a3 += W4*row[4] - W6*row[6];
            MAC(b0, W5, row[5]);
            MAC(b0, W7, row[7]);
            MAC(b1, -W1, row[5]);
            MAC(b1, -W5, row[7]);
            MAC(b2, W7, row[5]);
            MAC(b2, W3, row[7]);
            MAC(b3, W3, row[5]);
            MAC(b3, -W1, row[7]);
        }
        row[0] = (a0 + b0) >> ROW_SHIFT;
        row[7] = (a0 - b0) >> ROW_SHIFT;
        row[1] = (a1 + b1) >> ROW_SHIFT;
        row[6] = (a1 - b1) >> ROW_SHIFT;
        row[2] = (a2 + b2) >> ROW_SHIFT;
        row[5] = (a2 - b2) >> ROW_SHIFT;
        row[3] = (a3 + b3) >> ROW_SHIFT;
        row[4] = (a3 - b3) >> ROW_SHIFT;
}
['void ff_wmv2_add_mb(MpegEncContext *s, DCTELEM block1[6][64], uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr){\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->flags&CODEC_FLAG_GRAY) 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, DCTELEM *block1, uint8_t *dst, int stride, int 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        s->dsp.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->dsp.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->dsp.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_idct84_add(uint8_t *dest, int line_size, DCTELEM *block)\n{\n    int i;\n    for(i=0; i<4; i++) {\n        idctRowCondDC_8(block + i*8);\n    }\n    for(i=0;i<8;i++) {\n        idct4col_add(dest + i, line_size, block + i);\n    }\n}', 'static inline void FUNC(idctRowCondDC)(DCTELEM *row)\n{\n        int a0, a1, a2, a3, b0, b1, b2, b3;\n#if HAVE_FAST_64BIT\n#define ROW0_MASK (0xffffLL << 48 * HAVE_BIGENDIAN)\n        if (((((uint64_t *)row)[0] & ~ROW0_MASK) | ((uint64_t *)row)[1]) == 0) {\n            uint64_t temp = (row[0] << DC_SHIFT) & 0xffff;\n            temp += temp << 16;\n            temp += temp << 32;\n            ((uint64_t *)row)[0] = temp;\n            ((uint64_t *)row)[1] = temp;\n            return;\n        }\n#else\n        if (!(((uint32_t*)row)[1] |\n              ((uint32_t*)row)[2] |\n              ((uint32_t*)row)[3] |\n              row[1])) {\n            uint32_t temp = (row[0] << DC_SHIFT) & 0xffff;\n            temp += temp << 16;\n            ((uint32_t*)row)[0]=((uint32_t*)row)[1] =\n                ((uint32_t*)row)[2]=((uint32_t*)row)[3] = temp;\n            return;\n        }\n#endif\n        a0 = (W4 * row[0]) + (1 << (ROW_SHIFT - 1));\n        a1 = a0;\n        a2 = a0;\n        a3 = a0;\n        a0 += W2 * row[2];\n        a1 += W6 * row[2];\n        a2 -= W6 * row[2];\n        a3 -= W2 * row[2];\n        b0 = MUL(W1, row[1]);\n        MAC(b0, W3, row[3]);\n        b1 = MUL(W3, row[1]);\n        MAC(b1, -W7, row[3]);\n        b2 = MUL(W5, row[1]);\n        MAC(b2, -W1, row[3]);\n        b3 = MUL(W7, row[1]);\n        MAC(b3, -W5, row[3]);\n        if (AV_RN64A(row + 4)) {\n            a0 += W4*row[4] + W6*row[6];\n            a1 += - W4*row[4] - W2*row[6];\n            a2 += - W4*row[4] + W2*row[6];\n            a3 += W4*row[4] - W6*row[6];\n            MAC(b0, W5, row[5]);\n            MAC(b0, W7, row[7]);\n            MAC(b1, -W1, row[5]);\n            MAC(b1, -W5, row[7]);\n            MAC(b2, W7, row[5]);\n            MAC(b2, W3, row[7]);\n            MAC(b3, W3, row[5]);\n            MAC(b3, -W1, row[7]);\n        }\n        row[0] = (a0 + b0) >> ROW_SHIFT;\n        row[7] = (a0 - b0) >> ROW_SHIFT;\n        row[1] = (a1 + b1) >> ROW_SHIFT;\n        row[6] = (a1 - b1) >> ROW_SHIFT;\n        row[2] = (a2 + b2) >> ROW_SHIFT;\n        row[5] = (a2 - b2) >> ROW_SHIFT;\n        row[3] = (a3 + b3) >> ROW_SHIFT;\n        row[4] = (a3 - b3) >> ROW_SHIFT;\n}']