libavcodec/dvdsubdec.c:107: error: Integer Overflow L2
  ([-1, +oo] - 1):unsigned32 by call to `decode_run_8bit`.

libavcodec/dvdsubdec.c:98:5: Call
 96. 
 97.     bit_len = (buf_size - start) * 8;
 98.     bitstream_init(&bc, buf + start, bit_len);
         ^
 99. 
100.     x = 0;

libavcodec/bitstream.h:85:9: Assignment
  83.         bc->buffer    =
  84.         bc->ptr       = NULL;
  85.         bc->bits_left = 0;
              ^
  86.         return AVERROR_INVALIDDATA;
  87.     }

libavcodec/dvdsubdec.c:107:19: Call
105.             return -1;
106.         if (is_8bit)
107.             len = decode_run_8bit(&bc, &color);
                       ^
108.         else
109.             len = decode_run_2bit(&bc, &color);

libavcodec/dvdsubdec.c:67:1: Parameter `bc->bits_left`
  65. }
  66. 
  67. static int decode_run_8bit(BitstreamContext *bc, int *color)
      ^
  68. {
  69.     int len;

libavcodec/dvdsubdec.c:70:19: Call
  68. {
  69.     int len;
  70.     int has_run = bitstream_read_bit(bc);
                        ^
  71.     if (bitstream_read_bit(bc))
  72.         *color = bitstream_read(bc, 8);

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/dvdsubdec.c:71:9: Call
  69.     int len;
  70.     int has_run = bitstream_read_bit(bc);
  71.     if (bitstream_read_bit(bc))
              ^
  72.         *color = bitstream_read(bc, 8);
  73.     else

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