libavcodec/smacker.c:139: error: Integer Overflow L2
  (32 - [0, 94+max(64, `bc->bits_left`)]):unsigned32 by call to `bitstream_read_vlc`.

libavcodec/smacker.c:129:1: Parameter `bc->bits_left`
127.  * Decode header tree
128.  */
129. static int smacker_decode_bigtree(BitstreamContext *bc, HuffContext *hc,
     ^
130.                                   DBCtx *ctx)
131. {

libavcodec/smacker.c:136:10: Call
134.         return -1;
135.     }
136.     if (!bitstream_read_bit(bc)) { // Leaf
              ^
137.         int val, i1, i2;
138.         i1 = ctx->v1->table ? bitstream_read_vlc(bc, ctx->v1->table, SMKTREE_BITS, 3) : 0;

libavcodec/bitstream.h:145:1: Parameter `bc->bits_left`
  143. 
  144. /* Return one bit from the buffer. */
  145. static inline unsigned bitstream_read_bit(BitstreamContext *bc)
       ^
  146. {
  147.     if (!bc->bits_left)

libavcodec/bitstream.h:150:12: Call
  148.         refill_64(bc);
  149. 
  150.     return get_val(bc, 1);
                  ^
  151. }
  152. 

libavcodec/bitstream.h:130:1: Parameter `n`
    128. }
    129. 
    130. static inline uint64_t get_val(BitstreamContext *bc, unsigned n)
         ^
    131. {
    132. #ifdef BITSTREAM_READER_LE

libavcodec/bitstream.h:139:5: Assignment
    137.     bc->bits <<= n;
    138. #endif
    139.     bc->bits_left -= n;
             ^
    140. 
    141.     return ret;

libavcodec/smacker.c:139:31: Call
137.         int val, i1, i2;
138.         i1 = ctx->v1->table ? bitstream_read_vlc(bc, ctx->v1->table, SMKTREE_BITS, 3) : 0;
139.         i2 = ctx->v2->table ? bitstream_read_vlc(bc, ctx->v2->table, SMKTREE_BITS, 3) : 0;
                                   ^
140.         if (i1 < 0 || i2 < 0)
141.             return -1;

libavcodec/bitstream.h:313:1: Parameter `bc->bits_left`
  311.  * If the VLC code is invalid and max_depth > 1, then the number of bits removed
  312.  * is undefined. */
  313. static inline int bitstream_read_vlc(BitstreamContext *bc, VLC_TYPE (*table)[2],
       ^
  314.                                      int bits, int max_depth)
  315. {

libavcodec/bitstream.h:317:20: Call
  315. {
  316.     int nb_bits;
  317.     unsigned idx = bitstream_peek(bc, bits);
                          ^
  318.     int code = table[idx][0];
  319.     int n    = table[idx][1];

libavcodec/bitstream.h:215:1: Parameter `n`
    213. /* Return n bits from the buffer, but do not change the buffer state.
    214.  * n has to be in the 0-32 range. */
    215. static inline unsigned bitstream_peek(BitstreamContext *bc, unsigned n)
         ^
    216. {
    217.     if (n > bc->bits_left)

libavcodec/bitstream.h:218:9: Call
    216. {
    217.     if (n > bc->bits_left)
    218.         refill_32(bc);
                 ^
    219. 
    220.     return show_val(bc, n);

libavcodec/bitstream.h:60:1: <RHS trace>
58. }
59. 
60. static inline void refill_32(BitstreamContext *bc)
    ^
61. {
62.     if (bc->ptr >= bc->buffer_end)

libavcodec/bitstream.h:60:1: Parameter `bc->bits_left`
      58. }
      59. 
      60. static inline void refill_32(BitstreamContext *bc)
          ^
      61. {
      62.     if (bc->ptr >= bc->buffer_end)

libavcodec/bitstream.h:68:5: Binary operation: (32 - [0, 94+max(64, bc->bits_left)]):unsigned32 by call to `bitstream_read_vlc` 
      66.     bc->bits       = (uint64_t)AV_RL32(bc->ptr) << bc->bits_left | bc->bits;
      67. #else
      68.     bc->bits       = bc->bits | (uint64_t)AV_RB32(bc->ptr) << (32 - bc->bits_left);
              ^
      69. #endif
      70.     bc->ptr       += 4;

static inline void refill_32(BitstreamContext *bc)
{
    if (bc->ptr >= bc->buffer_end)
        return;
#ifdef BITSTREAM_READER_LE
    bc->bits       = (uint64_t)AV_RL32(bc->ptr) << bc->bits_left | bc->bits;
#else
    bc->bits       = bc->bits | (uint64_t)AV_RB32(bc->ptr) << (32 - bc->bits_left);
#endif
    bc->ptr       += 4;
    bc->bits_left += 32;
}
['static int smacker_decode_bigtree(BitstreamContext *bc, HuffContext *hc,\n                                  DBCtx *ctx)\n{\n    if (hc->current + 1 >= hc->length) {\n        av_log(NULL, AV_LOG_ERROR, "Tree size exceeded!\\n");\n        return -1;\n    }\n    if (!bitstream_read_bit(bc)) {\n        int val, i1, i2;\n        i1 = ctx->v1->table ? bitstream_read_vlc(bc, ctx->v1->table, SMKTREE_BITS, 3) : 0;\n        i2 = ctx->v2->table ? bitstream_read_vlc(bc, ctx->v2->table, SMKTREE_BITS, 3) : 0;\n        if (i1 < 0 || i2 < 0)\n            return -1;\n        val = ctx->recode1[i1] | (ctx->recode2[i2] << 8);\n        if(val == ctx->escapes[0]) {\n            ctx->last[0] = hc->current;\n            val = 0;\n        } else if(val == ctx->escapes[1]) {\n            ctx->last[1] = hc->current;\n            val = 0;\n        } else if(val == ctx->escapes[2]) {\n            ctx->last[2] = hc->current;\n            val = 0;\n        }\n        hc->values[hc->current++] = val;\n        return 1;\n    } else {\n        int r = 0, r_new, t;\n        t = hc->current++;\n        r = smacker_decode_bigtree(bc, hc, ctx);\n        if(r < 0)\n            return r;\n        hc->values[t] = SMK_NODE | r;\n        r++;\n        r_new = smacker_decode_bigtree(bc, hc, ctx);\n        if (r_new < 0)\n            return r_new;\n        return r + r_new;\n    }\n}', 'static inline unsigned bitstream_read_bit(BitstreamContext *bc)\n{\n    if (!bc->bits_left)\n        refill_64(bc);\n    return get_val(bc, 1);\n}', 'static inline uint64_t get_val(BitstreamContext *bc, unsigned n)\n{\n#ifdef BITSTREAM_READER_LE\n    uint64_t ret = bc->bits & ((UINT64_C(1) << n) - 1);\n    bc->bits >>= n;\n#else\n    uint64_t ret = bc->bits >> (64 - n);\n    bc->bits <<= n;\n#endif\n    bc->bits_left -= n;\n    return ret;\n}', 'static inline int bitstream_read_vlc(BitstreamContext *bc, VLC_TYPE (*table)[2],\n                                     int bits, int max_depth)\n{\n    int nb_bits;\n    unsigned idx = bitstream_peek(bc, bits);\n    int code = table[idx][0];\n    int n    = table[idx][1];\n    if (max_depth > 1 && n < 0) {\n        skip_remaining(bc, bits);\n        code = set_idx(bc, code, &n, &nb_bits, table);\n        if (max_depth > 2 && n < 0) {\n            skip_remaining(bc, nb_bits);\n            code = set_idx(bc, code, &n, &nb_bits, table);\n        }\n    }\n    skip_remaining(bc, n);\n    return code;\n}', 'static inline unsigned bitstream_peek(BitstreamContext *bc, unsigned n)\n{\n    if (n > bc->bits_left)\n        refill_32(bc);\n    return show_val(bc, n);\n}', 'static inline void refill_32(BitstreamContext *bc)\n{\n    if (bc->ptr >= bc->buffer_end)\n        return;\n#ifdef BITSTREAM_READER_LE\n    bc->bits       = (uint64_t)AV_RL32(bc->ptr) << bc->bits_left | bc->bits;\n#else\n    bc->bits       = bc->bits | (uint64_t)AV_RB32(bc->ptr) << (32 - bc->bits_left);\n#endif\n    bc->ptr       += 4;\n    bc->bits_left += 32;\n}']