libavcodec/proresdec.c:434: error: Integer Overflow L2
  ([2, 62] - [1, 4]):unsigned32 by call to `decode_vlc_codeword`.

libavcodec/proresdec.c:434:15: Call
432.             return;
433. 
434.         run = decode_vlc_codeword(gb, ac_codebook[run_cb_index]);
                   ^
435. 
436.         bits_left = get_bits_left(gb);

libavcodec/proresdec.c:309:1: <LHS trace>
307.  * Read an unsigned rice/exp golomb codeword.
308.  */
309. static inline int decode_vlc_codeword(GetBitContext *gb, uint8_t codebook)
     ^
310. {
311.     unsigned int rice_order, exp_order, switch_bits;

libavcodec/proresdec.c:309:1: Parameter `codebook`
  307.  * Read an unsigned rice/exp golomb codeword.
  308.  */
  309. static inline int decode_vlc_codeword(GetBitContext *gb, uint8_t codebook)
       ^
  310. {
  311.     unsigned int rice_order, exp_order, switch_bits;

libavcodec/proresdec.c:320:5: Assignment
  318. 
  319.     /* number of prefix bits to switch between Rice and expGolomb */
  320.     switch_bits = (codebook & 3) + 1;
           ^
  321.     rice_order  = codebook >> 5;        /* rice code order */
  322.     exp_order   = (codebook >> 2) & 7;  /* exp golomb code order */

libavcodec/proresdec.c:309:1: <RHS trace>
307.  * Read an unsigned rice/exp golomb codeword.
308.  */
309. static inline int decode_vlc_codeword(GetBitContext *gb, uint8_t codebook)
     ^
310. {
311.     unsigned int rice_order, exp_order, switch_bits;

libavcodec/proresdec.c:309:1: Parameter `codebook`
  307.  * Read an unsigned rice/exp golomb codeword.
  308.  */
  309. static inline int decode_vlc_codeword(GetBitContext *gb, uint8_t codebook)
       ^
  310. {
  311.     unsigned int rice_order, exp_order, switch_bits;

libavcodec/proresdec.c:320:5: Assignment
  318. 
  319.     /* number of prefix bits to switch between Rice and expGolomb */
  320.     switch_bits = (codebook & 3) + 1;
           ^
  321.     rice_order  = codebook >> 5;        /* rice code order */
  322.     exp_order   = (codebook >> 2) & 7;  /* exp golomb code order */

libavcodec/proresdec.c:337:9: Binary operation: ([2, 62] - [1, 4]):unsigned32 by call to `decode_vlc_codeword` 
  335.         }
  336.     } else { /* otherwise we got a exp golomb code */
  337.         len  = (log << 1) - switch_bits + exp_order + 1;
               ^
  338.         code = NEG_USR32(buf, len) - (1 << exp_order) + (switch_bits << rice_order);
  339.         LAST_SKIP_BITS(re, gb, len);

static inline int decode_vlc_codeword(GetBitContext *gb, uint8_t codebook)
{
    unsigned int rice_order, exp_order, switch_bits;
    unsigned int buf, code;
    int log, prefix_len, len;
    OPEN_READER(re, gb);
    UPDATE_CACHE(re, gb);
    buf = GET_CACHE(re, gb);
    switch_bits = (codebook & 3) + 1;
    rice_order  = codebook >> 5;
    exp_order   = (codebook >> 2) & 7;
    log = 31 - av_log2(buf);
    if (log < switch_bits) {
        if (!rice_order) {
            code = log;
            LAST_SKIP_BITS(re, gb, log + 1);
        } else {
            prefix_len = log + 1;
            code = (log << rice_order) + NEG_USR32((buf << prefix_len), rice_order);
            LAST_SKIP_BITS(re, gb, prefix_len + rice_order);
        }
    } else {
        len  = (log << 1) - switch_bits + exp_order + 1;
        code = NEG_USR32(buf, len) - (1 << exp_order) + (switch_bits << rice_order);
        LAST_SKIP_BITS(re, gb, len);
    }
    CLOSE_READER(re, gb);
    return code;
}
['static inline void decode_ac_coeffs(GetBitContext *gb, DCTELEM *out,\n                                    int blocks_per_slice,\n                                    int plane_size_factor,\n                                    const uint8_t *scan)\n{\n    int pos, block_mask, run, level, sign, run_cb_index, lev_cb_index;\n    int max_coeffs, bits_left;\n    run   = 4;\n    level = 2;\n    max_coeffs = blocks_per_slice << 6;\n    block_mask = blocks_per_slice - 1;\n    for (pos = blocks_per_slice - 1; pos < max_coeffs;) {\n        run_cb_index = run_to_cb_index[FFMIN(run, 15)];\n        lev_cb_index = lev_to_cb_index[FFMIN(level, 9)];\n        bits_left = get_bits_left(gb);\n        if (bits_left <= 8 && !show_bits(gb, bits_left))\n            return;\n        run = decode_vlc_codeword(gb, ac_codebook[run_cb_index]);\n        bits_left = get_bits_left(gb);\n        if (bits_left <= 8 && !show_bits(gb, bits_left))\n            return;\n        level = decode_vlc_codeword(gb, ac_codebook[lev_cb_index]) + 1;\n        pos += run + 1;\n        if (pos >= max_coeffs)\n            break;\n        sign = get_sbits(gb, 1);\n        out[((pos & block_mask) << 6) + scan[pos >> plane_size_factor]] =\n            (level ^ sign) - sign;\n    }\n}', 'static inline int decode_vlc_codeword(GetBitContext *gb, uint8_t codebook)\n{\n    unsigned int rice_order, exp_order, switch_bits;\n    unsigned int buf, code;\n    int log, prefix_len, len;\n    OPEN_READER(re, gb);\n    UPDATE_CACHE(re, gb);\n    buf = GET_CACHE(re, gb);\n    switch_bits = (codebook & 3) + 1;\n    rice_order  = codebook >> 5;\n    exp_order   = (codebook >> 2) & 7;\n    log = 31 - av_log2(buf);\n    if (log < switch_bits) {\n        if (!rice_order) {\n            code = log;\n            LAST_SKIP_BITS(re, gb, log + 1);\n        } else {\n            prefix_len = log + 1;\n            code = (log << rice_order) + NEG_USR32((buf << prefix_len), rice_order);\n            LAST_SKIP_BITS(re, gb, prefix_len + rice_order);\n        }\n    } else {\n        len  = (log << 1) - switch_bits + exp_order + 1;\n        code = NEG_USR32(buf, len) - (1 << exp_order) + (switch_bits << rice_order);\n        LAST_SKIP_BITS(re, gb, len);\n    }\n    CLOSE_READER(re, gb);\n    return code;\n}']