libavcodec/smacker.c:138: error: Integer Overflow L2
  (32 - [-1+min(64, `bc->bits_left`), -1+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:138:31: Call
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;
                                   ^
139.         i2 = ctx->v2->table ? bitstream_read_vlc(bc, ctx->v2->table, SMKTREE_BITS, 3) : 0;
140.         if (i1 < 0 || i2 < 0)

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 - [-1+min(64, bc->bits_left), -1+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;
