libavcodec/wmv2.c:62: error: Buffer Overrun L2
  Offset: [5, 29] (⇐ [0, 24] + 5) Size: 6 by call to `wmv2_add_block`.

libavcodec/wmv2.c:62:5: Call
60.     Wmv2Context * const w= (Wmv2Context*)s;
61. 
62.     wmv2_add_block(w, block1[0], dest_y                    , s->linesize, 0);
        ^
63.     wmv2_add_block(w, block1[1], dest_y + 8                , s->linesize, 1);
64.     wmv2_add_block(w, block1[2], dest_y +     8*s->linesize, s->linesize, 2);

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:500:1: Parameter `*block`
    498. }
    499. 
    500. void ff_simple_idct84_add(uint8_t *dest, int line_size, DCTELEM *block)
         ^
    501. {
    502.     int i;

libavcodec/simple_idct.c:506:9: Call
    504.     /* IDCT8 on each line */
    505.     for(i=0; i<4; i++) {
    506.         idctRowCondDC(block + i*8);
                 ^
    507.     }
    508. 

libavcodec/simple_idct.c:49:1: <Length trace>
47. #define COL_SHIFT 20 // 6
48. 
49. static inline void idctRowCondDC (DCTELEM * row)
    ^
50. {
51.         int a0, a1, a2, a3, b0, b1, b2, b3;

libavcodec/simple_idct.c:49:1: Parameter `*row`
      47. #define COL_SHIFT 20 // 6
      48. 
      49. static inline void idctRowCondDC (DCTELEM * row)
          ^
      50. {
      51.         int a0, a1, a2, a3, b0, b1, b2, b3;

libavcodec/simple_idct.c:102:13: Array access: Offset: [5, 29] (⇐ [0, 24] + 5) Size: 6 by call to `wmv2_add_block` 
      100.             a3 += W4*row[4] - W6*row[6];
      101. 
      102.             MAC16(b0, W5, row[5]);
                       ^
      103.             MAC16(b0, W7, row[7]);
      104. 

static inline void 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] << 3) & 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] << 3) & 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 = MUL16(W1, row[1]);
        MAC16(b0, W3, row[3]);
        b1 = MUL16(W3, row[1]);
        MAC16(b1, -W7, row[3]);
        b2 = MUL16(W5, row[1]);
        MAC16(b2, -W1, row[3]);
        b3 = MUL16(W7, row[1]);
        MAC16(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];
            MAC16(b0, W5, row[5]);
            MAC16(b0, W7, row[7]);
            MAC16(b1, -W1, row[5]);
            MAC16(b1, -W5, row[7]);
            MAC16(b2, W7, row[5]);
            MAC16(b2, W3, row[7]);
            MAC16(b3, W3, row[5]);
            MAC16(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(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 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] << 3) & 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] << 3) & 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 = MUL16(W1, row[1]);\n        MAC16(b0, W3, row[3]);\n        b1 = MUL16(W3, row[1]);\n        MAC16(b1, -W7, row[3]);\n        b2 = MUL16(W5, row[1]);\n        MAC16(b2, -W1, row[3]);\n        b3 = MUL16(W7, row[1]);\n        MAC16(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            MAC16(b0, W5, row[5]);\n            MAC16(b0, W7, row[7]);\n            MAC16(b1, -W1, row[5]);\n            MAC16(b1, -W5, row[7]);\n            MAC16(b2, W7, row[5]);\n            MAC16(b2, W3, row[7]);\n            MAC16(b3, W3, row[5]);\n            MAC16(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}']