libavcodec/fic.c:227: error: Buffer Overrun L2
  Offset: [33, 1056] Size: 1024.

libavcodec/fic.c:221:10: <Offset trace>
219. 
220.     /* Subsample chroma. */
221.     for (i = 0; i < 32; i += 2)
              ^
222.         for (j = 0; j < 32; j += 2)
223.             for (p = 0; p < 3; p++)

libavcodec/fic.c:221:10: Assignment
219. 
220.     /* Subsample chroma. */
221.     for (i = 0; i < 32; i += 2)
              ^
222.         for (j = 0; j < 32; j += 2)
223.             for (p = 0; p < 3; p++)

libavcodec/fic.c:201:1: <Length trace>
199. }
200. 
201. static void fic_draw_cursor(AVCodecContext *avctx, int cur_x, int cur_y)
     ^
202. {
203.     FICContext *ctx = avctx->priv_data;

libavcodec/fic.c:201:1: Array declaration
199. }
200. 
201. static void fic_draw_cursor(AVCodecContext *avctx, int cur_x, int cur_y)
     ^
202. {
203.     FICContext *ctx = avctx->priv_data;

libavcodec/fic.c:227:52: Array access: Offset: [33, 1056] Size: 1024
225.                                                    planes[p + 1][32 *  i      + j + 1] +
226.                                                    planes[p + 1][32 * (i + 1) + j    ] +
227.                                                    planes[p + 1][32 * (i + 1) + j + 1]) / 4;
                                                        ^
228. 
229.     /* Seek to x/y pos of cursor. */

static void fic_draw_cursor(AVCodecContext *avctx, int cur_x, int cur_y)
{
    FICContext *ctx = avctx->priv_data;
    uint8_t *ptr    = ctx->cursor_buf;
    uint8_t *dstptr[3];
    uint8_t planes[4][1024];
    uint8_t chroma[3][256];
    int i, j, p;
    for (i = 0; i < 1024; i++) {
        planes[0][i] = av_clip_uint8((( 25 * ptr[0] + 129 * ptr[1] +  66 * ptr[2]) / 255) + 16);
        planes[1][i] = av_clip_uint8(((-38 * ptr[0] + 112 * ptr[1] + -74 * ptr[2]) / 255) + 128);
        planes[2][i] = av_clip_uint8(((-18 * ptr[0] + 112 * ptr[1] + -94 * ptr[2]) / 255) + 128);
        planes[3][i] = ptr[3];
        ptr += 4;
    }
    for (i = 0; i < 32; i += 2)
        for (j = 0; j < 32; j += 2)
            for (p = 0; p < 3; p++)
                chroma[p][16 * (i / 2) + j / 2] = (planes[p + 1][32 *  i      + j    ] +
                                                   planes[p + 1][32 *  i      + j + 1] +
                                                   planes[p + 1][32 * (i + 1) + j    ] +
                                                   planes[p + 1][32 * (i + 1) + j + 1]) / 4;
    for (i = 0; i < 3; i++)
        dstptr[i] = ctx->final_frame->data[i]                        +
                    (ctx->final_frame->linesize[i] * (cur_y >> !!i)) +
                    (cur_x >> !!i) + !!i;
    for (i = 0; i < FFMIN(32, avctx->height - cur_y) - 1; i += 2) {
        int lsize = FFMIN(32, avctx->width - cur_x);
        int csize = lsize / 2;
        fic_alpha_blend(dstptr[0],
                        planes[0] + i * 32, lsize, planes[3] + i * 32);
        fic_alpha_blend(dstptr[0] + ctx->final_frame->linesize[0],
                        planes[0] + (i + 1) * 32, lsize, planes[3] + (i + 1) * 32);
        fic_alpha_blend(dstptr[1],
                        chroma[0] + (i / 2) * 16, csize, chroma[2] + (i / 2) * 16);
        fic_alpha_blend(dstptr[2],
                        chroma[1] + (i / 2) * 16, csize, chroma[2] + (i / 2) * 16);
        dstptr[0] += ctx->final_frame->linesize[0] * 2;
        dstptr[1] += ctx->final_frame->linesize[1];
        dstptr[2] += ctx->final_frame->linesize[2];
    }
}
['static void fic_draw_cursor(AVCodecContext *avctx, int cur_x, int cur_y)\n{\n    FICContext *ctx = avctx->priv_data;\n    uint8_t *ptr    = ctx->cursor_buf;\n    uint8_t *dstptr[3];\n    uint8_t planes[4][1024];\n    uint8_t chroma[3][256];\n    int i, j, p;\n    for (i = 0; i < 1024; i++) {\n        planes[0][i] = av_clip_uint8((( 25 * ptr[0] + 129 * ptr[1] +  66 * ptr[2]) / 255) + 16);\n        planes[1][i] = av_clip_uint8(((-38 * ptr[0] + 112 * ptr[1] + -74 * ptr[2]) / 255) + 128);\n        planes[2][i] = av_clip_uint8(((-18 * ptr[0] + 112 * ptr[1] + -94 * ptr[2]) / 255) + 128);\n        planes[3][i] = ptr[3];\n        ptr += 4;\n    }\n    for (i = 0; i < 32; i += 2)\n        for (j = 0; j < 32; j += 2)\n            for (p = 0; p < 3; p++)\n                chroma[p][16 * (i / 2) + j / 2] = (planes[p + 1][32 *  i      + j    ] +\n                                                   planes[p + 1][32 *  i      + j + 1] +\n                                                   planes[p + 1][32 * (i + 1) + j    ] +\n                                                   planes[p + 1][32 * (i + 1) + j + 1]) / 4;\n    for (i = 0; i < 3; i++)\n        dstptr[i] = ctx->final_frame->data[i]                        +\n                    (ctx->final_frame->linesize[i] * (cur_y >> !!i)) +\n                    (cur_x >> !!i) + !!i;\n    for (i = 0; i < FFMIN(32, avctx->height - cur_y) - 1; i += 2) {\n        int lsize = FFMIN(32, avctx->width - cur_x);\n        int csize = lsize / 2;\n        fic_alpha_blend(dstptr[0],\n                        planes[0] + i * 32, lsize, planes[3] + i * 32);\n        fic_alpha_blend(dstptr[0] + ctx->final_frame->linesize[0],\n                        planes[0] + (i + 1) * 32, lsize, planes[3] + (i + 1) * 32);\n        fic_alpha_blend(dstptr[1],\n                        chroma[0] + (i / 2) * 16, csize, chroma[2] + (i / 2) * 16);\n        fic_alpha_blend(dstptr[2],\n                        chroma[1] + (i / 2) * 16, csize, chroma[2] + (i / 2) * 16);\n        dstptr[0] += ctx->final_frame->linesize[0] * 2;\n        dstptr[1] += ctx->final_frame->linesize[1];\n        dstptr[2] += ctx->final_frame->linesize[2];\n    }\n}']