libavcodec/xan.c:135: error: Integer Overflow L2
  ([0, +oo] - 1):unsigned32 by call to `bitstream_read_bit`.

libavcodec/xan.c:132:5: Call
130.         return AVERROR_INVALIDDATA;
131. 
132.     bitstream_init8(&bc, ptr, ptr_len);
         ^
133. 
134.     while (val != 0x16) {

libavcodec/bitstream.h:104:1: Parameter `bc->bits_left`
  102. 
  103. /* Initialize BitstreamContext with buffer size in bytes instead of bits. */
  104. static inline int bitstream_init8(BitstreamContext *bc, const uint8_t *buffer,
       ^
  105.                                   unsigned byte_size)
  106. {

libavcodec/xan.c:135:37: Call
133. 
134.     while (val != 0x16) {
135.         unsigned idx = val - 0x17 + bitstream_read_bit(&bc) * byte;
                                         ^
136.         if (idx >= 2 * byte)
137.             return AVERROR_INVALIDDATA;

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: <LHS trace>
128. }
129. 
130. static inline uint64_t get_val(BitstreamContext *bc, unsigned n)
     ^
131. {
132. #ifdef BITSTREAM_READER_LE

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

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

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: Binary operation: ([0, +oo] - 1):unsigned32 by call to `bitstream_read_bit` 
    137.     bc->bits <<= n;
    138. #endif
    139.     bc->bits_left -= n;
             ^
    140. 
    141.     return ret;

static inline uint64_t get_val(BitstreamContext *bc, unsigned n)
{
#ifdef BITSTREAM_READER_LE
    uint64_t ret = bc->bits & ((UINT64_C(1) << n) - 1);
    bc->bits >>= n;
#else
    uint64_t ret = bc->bits >> (64 - n);
    bc->bits <<= n;
#endif
    bc->bits_left -= n;
    return ret;
}
['static int xan_huffman_decode(unsigned char *dest, int dest_len,\n                              const unsigned char *src, int src_len)\n{\n    unsigned char byte = *src++;\n    unsigned char ival = byte + 0x16;\n    const unsigned char * ptr = src + byte*2;\n    int ptr_len = src_len - 1 - byte*2;\n    unsigned char val = ival;\n    unsigned char *dest_end = dest + dest_len;\n    unsigned char *dest_start = dest;\n    BitstreamContext bc;\n    if (ptr_len < 0)\n        return AVERROR_INVALIDDATA;\n    bitstream_init8(&bc, ptr, ptr_len);\n    while (val != 0x16) {\n        unsigned idx = val - 0x17 + bitstream_read_bit(&bc) * byte;\n        if (idx >= 2 * byte)\n            return AVERROR_INVALIDDATA;\n        val = src[idx];\n        if (val < 0x16) {\n            if (dest >= dest_end)\n                return dest_len;\n            *dest++ = val;\n            val = ival;\n        }\n    }\n    return dest - dest_start;\n}', 'static inline int bitstream_init8(BitstreamContext *bc, const uint8_t *buffer,\n                                  unsigned byte_size)\n{\n    if (byte_size > INT_MAX / 8)\n        return AVERROR_INVALIDDATA;\n    return bitstream_init(bc, buffer, byte_size * 8);\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}']