libavcodec/hnm4video.c:97: error: Integer Overflow L2
  ([0, `*src`] - 256):unsigned32.

libavcodec/hnm4video.c:65:1: <LHS trace>
63. }
64. 
65. static void unpack_intraframe(AVCodecContext *avctx, uint8_t *src,
    ^
66.                               uint32_t size)
67. {

libavcodec/hnm4video.c:65:1: Parameter `*src`
63. }
64. 
65. static void unpack_intraframe(AVCodecContext *avctx, uint8_t *src,
    ^
66.                               uint32_t size)
67. {

libavcodec/hnm4video.c:97:26: Call
95.                 count  = getbit(&gb, &bitbuf, &bits) * 2;
96.                 count += getbit(&gb, &bitbuf, &bits);
97.                 offset = bytestream2_get_byte(&gb) - 0x0100;
                             ^
98.             }
99.             count  += 2;

libavcodec/bytestream.h:92:1: Assignment
  90. DEF(unsigned int, be24, 3, AV_RB24, AV_WB24)
  91. DEF(unsigned int, be16, 2, AV_RB16, AV_WB16)
  92. DEF(unsigned int, byte, 1, AV_RB8 , AV_WB8)
      ^
  93. 
  94. #if HAVE_BIGENDIAN

libavcodec/hnm4video.c:97:17: Binary operation: ([0, *src] - 256):unsigned32
95.                 count  = getbit(&gb, &bitbuf, &bits) * 2;
96.                 count += getbit(&gb, &bitbuf, &bits);
97.                 offset = bytestream2_get_byte(&gb) - 0x0100;
                    ^
98.             }
99.             count  += 2;

static void unpack_intraframe(AVCodecContext *avctx, uint8_t *src,
                              uint32_t size)
{
    Hnm4VideoContext *hnm = avctx->priv_data;
    GetByteContext gb;
    uint32_t bitbuf = 0, writeoffset = 0, count = 0;
    uint16_t word;
    int32_t offset;
    int bits = 0;
    bytestream2_init(&gb, src, size);
    while (bytestream2_tell(&gb) < size) {
        if (getbit(&gb, &bitbuf, &bits)) {
            if (writeoffset >= hnm->width * hnm->height) {
                av_log(avctx, AV_LOG_ERROR,
                       "Attempting to write out of bounds");
                break;
            }
            hnm->current[writeoffset++] = bytestream2_get_byte(&gb);
        } else {
            if (getbit(&gb, &bitbuf, &bits)) {
                word   = bytestream2_get_le16(&gb);
                count  = word & 0x07;
                offset = (word >> 3) - 0x2000;
                if (!count)
                    count = bytestream2_get_byte(&gb);
                if (!count)
                    return;
            } else {
                count  = getbit(&gb, &bitbuf, &bits) * 2;
                count += getbit(&gb, &bitbuf, &bits);
                offset = bytestream2_get_byte(&gb) - 0x0100;
            }
            count  += 2;
            offset += writeoffset;
            if (offset < 0 || offset + count >= hnm->width * hnm->height) {
                av_log(avctx, AV_LOG_ERROR, "Attempting to read out of bounds");
                break;
            } else if (writeoffset + count >= hnm->width * hnm->height) {
                av_log(avctx, AV_LOG_ERROR,
                       "Attempting to write out of bounds");
                break;
            }
            while (count--) {
                hnm->current[writeoffset++] = hnm->current[offset++];
            }
        }
    }
}
['static void unpack_intraframe(AVCodecContext *avctx, uint8_t *src,\n                              uint32_t size)\n{\n    Hnm4VideoContext *hnm = avctx->priv_data;\n    GetByteContext gb;\n    uint32_t bitbuf = 0, writeoffset = 0, count = 0;\n    uint16_t word;\n    int32_t offset;\n    int bits = 0;\n    bytestream2_init(&gb, src, size);\n    while (bytestream2_tell(&gb) < size) {\n        if (getbit(&gb, &bitbuf, &bits)) {\n            if (writeoffset >= hnm->width * hnm->height) {\n                av_log(avctx, AV_LOG_ERROR,\n                       "Attempting to write out of bounds");\n                break;\n            }\n            hnm->current[writeoffset++] = bytestream2_get_byte(&gb);\n        } else {\n            if (getbit(&gb, &bitbuf, &bits)) {\n                word   = bytestream2_get_le16(&gb);\n                count  = word & 0x07;\n                offset = (word >> 3) - 0x2000;\n                if (!count)\n                    count = bytestream2_get_byte(&gb);\n                if (!count)\n                    return;\n            } else {\n                count  = getbit(&gb, &bitbuf, &bits) * 2;\n                count += getbit(&gb, &bitbuf, &bits);\n                offset = bytestream2_get_byte(&gb) - 0x0100;\n            }\n            count  += 2;\n            offset += writeoffset;\n            if (offset < 0 || offset + count >= hnm->width * hnm->height) {\n                av_log(avctx, AV_LOG_ERROR, "Attempting to read out of bounds");\n                break;\n            } else if (writeoffset + count >= hnm->width * hnm->height) {\n                av_log(avctx, AV_LOG_ERROR,\n                       "Attempting to write out of bounds");\n                break;\n            }\n            while (count--) {\n                hnm->current[writeoffset++] = hnm->current[offset++];\n            }\n        }\n    }\n}', 'DEF(unsigned int, byte, 1, AV_RB8 , AV_WB8)']