libavcodec/hqx.c:421: error: Buffer Overrun L2
  Offset: [15, 71] (⇐ [11, 67] + 4) Size: 16 by call to `put_blocks`.

libavcodec/hqx.c:380:1: Parameter `ctx->block[*]`
378. }
379. 
380. static int hqx_decode_444a(HQXContext *ctx, AVFrame *pic,
     ^
381.                            GetBitContext *gb, int x, int y)
382. {

libavcodec/hqx.c:421:5: Call
419.     put_blocks(pic, 0, x + 8, y, flag, ctx->block[ 5], ctx->block[ 7], hqx_quant_luma);
420.     put_blocks(pic, 2, x,     y, flag, ctx->block[ 8], ctx->block[10], hqx_quant_chroma);
421.     put_blocks(pic, 2, x + 8, y, flag, ctx->block[ 9], ctx->block[11], hqx_quant_chroma);
         ^
422.     put_blocks(pic, 1, x,     y, flag, ctx->block[12], ctx->block[14], hqx_quant_chroma);
423.     put_blocks(pic, 1, x + 8, y, flag, ctx->block[13], ctx->block[15], hqx_quant_chroma);

libavcodec/hqx.c:192:1: Parameter `*block1`
  190. }
  191. 
  192. static inline void put_blocks(AVFrame *pic, int plane,
       ^
  193.                               int x, int y, int ilace,
  194.                               int16_t *block0, int16_t *block1,

libavcodec/hqx.c:202:5: Call
  200. 
  201.     hqx_idct_put((uint16_t *)(p + y * lsize), lsize * fields, block0, quant);
  202.     hqx_idct_put((uint16_t *)(p + (y + (ilace ? 1 : 8)) * lsize),
           ^
  203.                  lsize * fields, block1, quant);
  204. }

libavcodec/hqx.c:176:1: Parameter `*block`
    174. }
    175. 
    176. static void hqx_idct_put(uint16_t *dst, ptrdiff_t stride,
         ^
    177.                          int16_t *block, const uint8_t *quant)
    178. {

libavcodec/hqx.c:181:5: Call
    179.     int i, j;
    180. 
    181.     hqx_idct(block, quant);
             ^
    182. 
    183.     for (i = 0; i < 8; i++) {

libavcodec/hqx.c:166:1: Parameter `*block`
      164. }
      165. 
      166. static void hqx_idct(int16_t *block, const uint8_t *quant)
           ^
      167. {
      168.     int i;

libavcodec/hqx.c:173:9: Call
      171.         idct_col(block + i, quant + i);
      172.     for (i = 0; i < 8; i++)
      173.         idct_row(block + i * 8);
                   ^
      174. }
      175. 

libavcodec/hqx.c:130:1: <Length trace>
128. }
129. 
130. static inline void idct_row(int16_t *blk)
     ^
131. {
132.     int t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, tA, tB, tC, tD, tE, tF;

libavcodec/hqx.c:130:1: Parameter `*blk`
        128. }
        129. 
        130. static inline void idct_row(int16_t *blk)
             ^
        131. {
        132.     int t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, tA, tB, tC, tD, tE, tF;

libavcodec/hqx.c:147:20: Array access: Offset: [15, 71] (⇐ [11, 67] + 4) Size: 16 by call to `put_blocks` 
        145.     tA  = (blk[2] * 8867 - blk[6] * 21407) >> 14;
        146.     tB  = (blk[6] * 8867 + blk[2] * 21407) >> 14;
        147.     tC  = blk[0] - blk[4];
                                ^
        148.     tD  = blk[4] * 2 + tC;
        149.     tE  = tC - tA;

static inline void idct_row(int16_t *blk)
{
    int t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, tA, tB, tC, tD, tE, tF;
    int t10, t11, t12, t13;
    t0  =  (blk[3] * 19266 + blk[5] * 12873) >> 14;
    t1  =  (blk[5] * 19266 - blk[3] * 12873) >> 14;
    t2  = ((blk[7] * 4520  + blk[1] * 22725) >> 14) - t0;
    t3  = ((blk[1] * 4520  - blk[7] * 22725) >> 14) - t1;
    t4  = t0 * 2 + t2;
    t5  = t1 * 2 + t3;
    t6  = t2 - t3;
    t7  = t3 * 2 + t6;
    t8  = (t6 * 11585) >> 14;
    t9  = (t7 * 11585) >> 14;
    tA  = (blk[2] * 8867 - blk[6] * 21407) >> 14;
    tB  = (blk[6] * 8867 + blk[2] * 21407) >> 14;
    tC  = blk[0] - blk[4];
    tD  = blk[4] * 2 + tC;
    tE  = tC - tA;
    tF  = tD - tB;
    t10 = tF - t5;
    t11 = tE - t8;
    t12 = tE + tA * 2 - t9;
    t13 = tF + tB * 2 - t4;
    blk[0] = (t13 + t4 * 2 + 4) >> 3;
    blk[1] = (t12 + t9 * 2 + 4) >> 3;
    blk[2] = (t11 + t8 * 2 + 4) >> 3;
    blk[3] = (t10 + t5 * 2 + 4) >> 3;
    blk[4] = (t10          + 4) >> 3;
    blk[5] = (t11          + 4) >> 3;
    blk[6] = (t12          + 4) >> 3;
    blk[7] = (t13          + 4) >> 3;
}
['static int hqx_decode_444a(HQXContext *ctx, AVFrame *pic,\n                           GetBitContext *gb, int x, int y)\n{\n    const int *quants;\n    int flag = 0;\n    int last_dc;\n    int i, ret;\n    int cbp;\n    cbp = get_vlc2(gb, ctx->cbp_vlc.table, ctx->cbp_vlc.bits, 1);\n    for (i = 0; i < 16; i++)\n        memset(ctx->block[i], 0, sizeof(**ctx->block) * 64);\n    for (i = 0; i < 16; i++)\n        ctx->block[i][0] = -0x800;\n    if (cbp) {\n        if (ctx->interlaced)\n            flag = get_bits1(gb);\n        quants = hqx_quants[get_bits(gb, 4)];\n        cbp |= cbp << 4;\n        cbp |= cbp << 8;\n        for (i = 0; i < 16; i++) {\n            if (i == 0 || i == 4 || i == 8 || i == 12)\n                last_dc = 0;\n            if (cbp & (1 << i)) {\n                int vlc_index = ctx->dcb - 9;\n                ret = decode_block(gb, &ctx->dc_vlc[vlc_index], quants,\n                                   ctx->dcb, ctx->block[i], &last_dc);\n                if (ret < 0)\n                    return ret;\n            }\n        }\n    }\n    put_blocks(pic, 3, x,     y, flag, ctx->block[ 0], ctx->block[ 2], hqx_quant_luma);\n    put_blocks(pic, 3, x + 8, y, flag, ctx->block[ 1], ctx->block[ 3], hqx_quant_luma);\n    put_blocks(pic, 0, x,     y, flag, ctx->block[ 4], ctx->block[ 6], hqx_quant_luma);\n    put_blocks(pic, 0, x + 8, y, flag, ctx->block[ 5], ctx->block[ 7], hqx_quant_luma);\n    put_blocks(pic, 2, x,     y, flag, ctx->block[ 8], ctx->block[10], hqx_quant_chroma);\n    put_blocks(pic, 2, x + 8, y, flag, ctx->block[ 9], ctx->block[11], hqx_quant_chroma);\n    put_blocks(pic, 1, x,     y, flag, ctx->block[12], ctx->block[14], hqx_quant_chroma);\n    put_blocks(pic, 1, x + 8, y, flag, ctx->block[13], ctx->block[15], hqx_quant_chroma);\n    return 0;\n}', 'static inline void put_blocks(AVFrame *pic, int plane,\n                              int x, int y, int ilace,\n                              int16_t *block0, int16_t *block1,\n                              const uint8_t *quant)\n{\n    int fields = ilace ? 2 : 1;\n    int lsize = pic->linesize[plane];\n    uint8_t *p = pic->data[plane] + x * 2;\n    hqx_idct_put((uint16_t *)(p + y * lsize), lsize * fields, block0, quant);\n    hqx_idct_put((uint16_t *)(p + (y + (ilace ? 1 : 8)) * lsize),\n                 lsize * fields, block1, quant);\n}', 'static void hqx_idct_put(uint16_t *dst, ptrdiff_t stride,\n                         int16_t *block, const uint8_t *quant)\n{\n    int i, j;\n    hqx_idct(block, quant);\n    for (i = 0; i < 8; i++) {\n        for (j = 0; j < 8; j++) {\n            int v = av_clip(block[j + i * 8] + 0x800, 0, 0x1000);\n            dst[j] = (v << 4) | (v >> 8);\n        }\n        dst += stride >> 1;\n    }\n}', 'static void hqx_idct(int16_t *block, const uint8_t *quant)\n{\n    int i;\n    for (i = 0; i < 8; i++)\n        idct_col(block + i, quant + i);\n    for (i = 0; i < 8; i++)\n        idct_row(block + i * 8);\n}', 'static inline void idct_row(int16_t *blk)\n{\n    int t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, tA, tB, tC, tD, tE, tF;\n    int t10, t11, t12, t13;\n    t0  =  (blk[3] * 19266 + blk[5] * 12873) >> 14;\n    t1  =  (blk[5] * 19266 - blk[3] * 12873) >> 14;\n    t2  = ((blk[7] * 4520  + blk[1] * 22725) >> 14) - t0;\n    t3  = ((blk[1] * 4520  - blk[7] * 22725) >> 14) - t1;\n    t4  = t0 * 2 + t2;\n    t5  = t1 * 2 + t3;\n    t6  = t2 - t3;\n    t7  = t3 * 2 + t6;\n    t8  = (t6 * 11585) >> 14;\n    t9  = (t7 * 11585) >> 14;\n    tA  = (blk[2] * 8867 - blk[6] * 21407) >> 14;\n    tB  = (blk[6] * 8867 + blk[2] * 21407) >> 14;\n    tC  = blk[0] - blk[4];\n    tD  = blk[4] * 2 + tC;\n    tE  = tC - tA;\n    tF  = tD - tB;\n    t10 = tF - t5;\n    t11 = tE - t8;\n    t12 = tE + tA * 2 - t9;\n    t13 = tF + tB * 2 - t4;\n    blk[0] = (t13 + t4 * 2 + 4) >> 3;\n    blk[1] = (t12 + t9 * 2 + 4) >> 3;\n    blk[2] = (t11 + t8 * 2 + 4) >> 3;\n    blk[3] = (t10 + t5 * 2 + 4) >> 3;\n    blk[4] = (t10          + 4) >> 3;\n    blk[5] = (t11          + 4) >> 3;\n    blk[6] = (t12          + 4) >> 3;\n    blk[7] = (t13          + 4) >> 3;\n}']