libavcodec/wmadec.c:337: error: Integer Overflow L2
  ([0, +oo] - 8):unsigned32 by call to `bitstream_read_vlc`.

libavcodec/wmadec.c:308:1: Parameter `s->bc.bits_left`
306.  * decode exponents coded with VLC codes
307.  */
308. static int decode_exp_vlc(WMACodecContext *s, int ch)
     ^
309. {
310.     int last_exp, n, code;

libavcodec/wmadec.c:337:16: Call
335. 
336.     while (q < q_end) {
337.         code = bitstream_read_vlc(&s->bc, s->exp_vlc.table, EXPVLCBITS, EXPMAX);
                    ^
338.         if (code < 0) {
339.             av_log(s->avctx, AV_LOG_ERROR, "Exponent vlc invalid\n");

libavcodec/bitstream.h:313:1: Parameter `bits`
  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:322:9: Call
  320. 
  321.     if (max_depth > 1 && n < 0) {
  322.         skip_remaining(bc, bits);
               ^
  323.         code = set_idx(bc, code, &n, &nb_bits, table);
  324.         if (max_depth > 2 && n < 0) {

libavcodec/bitstream.h:230:1: <LHS trace>
228. }
229. 
230. static inline void skip_remaining(BitstreamContext *bc, unsigned n)
     ^
231. {
232. #ifdef BITSTREAM_READER_LE

libavcodec/bitstream.h:230:1: Parameter `bc->bits_left`
    228. }
    229. 
    230. static inline void skip_remaining(BitstreamContext *bc, unsigned n)
         ^
    231. {
    232. #ifdef BITSTREAM_READER_LE

libavcodec/bitstream.h:230:1: <RHS trace>
228. }
229. 
230. static inline void skip_remaining(BitstreamContext *bc, unsigned n)
     ^
231. {
232. #ifdef BITSTREAM_READER_LE

libavcodec/bitstream.h:230:1: Parameter `n`
    228. }
    229. 
    230. static inline void skip_remaining(BitstreamContext *bc, unsigned n)
         ^
    231. {
    232. #ifdef BITSTREAM_READER_LE

libavcodec/bitstream.h:237:5: Binary operation: ([0, +oo] - 8):unsigned32 by call to `bitstream_read_vlc` 
    235.     bc->bits <<= n;
    236. #endif
    237.     bc->bits_left -= n;
             ^
    238. }
    239. 

static inline void skip_remaining(BitstreamContext *bc, unsigned n)
{
#ifdef BITSTREAM_READER_LE
    bc->bits >>= n;
#else
    bc->bits <<= n;
#endif
    bc->bits_left -= n;
}
['static int decode_exp_vlc(WMACodecContext *s, int ch)\n{\n    int last_exp, n, code;\n    const uint16_t *ptr;\n    float v, max_scale;\n    uint32_t *q, *q_end, iv;\n    const float *ptab = pow_tab + 60;\n    const uint32_t *iptab = (const uint32_t *) ptab;\n    ptr       = s->exponent_bands[s->frame_len_bits - s->block_len_bits];\n    q         = (uint32_t *) s->exponents[ch];\n    q_end     = q + s->block_len;\n    max_scale = 0;\n    if (s->version == 1) {\n        last_exp  = bitstream_read(&s->bc, 5) + 10;\n        v         = ptab[last_exp];\n        iv        = iptab[last_exp];\n        max_scale = v;\n        n         = *ptr++;\n        switch (n & 3) do {\n        case 0: *q++ = iv;\n        case 3: *q++ = iv;\n        case 2: *q++ = iv;\n        case 1: *q++ = iv;\n        } while ((n -= 4) > 0);\n    } else\n        last_exp = 36;\n    while (q < q_end) {\n        code = bitstream_read_vlc(&s->bc, s->exp_vlc.table, EXPVLCBITS, EXPMAX);\n        if (code < 0) {\n            av_log(s->avctx, AV_LOG_ERROR, "Exponent vlc invalid\\n");\n            return -1;\n        }\n        last_exp += code - 60;\n        if ((unsigned) last_exp + 60 >= FF_ARRAY_ELEMS(pow_tab)) {\n            av_log(s->avctx, AV_LOG_ERROR, "Exponent out of range: %d\\n",\n                   last_exp);\n            return -1;\n        }\n        v  = ptab[last_exp];\n        iv = iptab[last_exp];\n        if (v > max_scale)\n            max_scale = v;\n        n = *ptr++;\n        switch (n & 3) do {\n        case 0: *q++ = iv;\n        case 3: *q++ = iv;\n        case 2: *q++ = iv;\n        case 1: *q++ = iv;\n        } while ((n -= 4) > 0);\n    }\n    s->max_exponent[ch] = max_scale;\n    return 0;\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 void skip_remaining(BitstreamContext *bc, unsigned n)\n{\n#ifdef BITSTREAM_READER_LE\n    bc->bits >>= n;\n#else\n    bc->bits <<= n;\n#endif\n    bc->bits_left -= n;\n}']