libavcodec/mlpdec.c:1145: error: Integer Overflow L2
  ([0, 8182] - 1):unsigned32 by call to `mlp_checksum8`.

libavcodec/mlpdec.c:994:1: Parameter `buf_size`
992.  *  otherwise returns the number of bytes consumed. */
993. 
994. static int read_access_unit(AVCodecContext *avctx, void* data, int *data_size,
     ^
995.                             const uint8_t *buf, int buf_size)
996. {

libavcodec/mlpdec.c:1069:9: Assignment
1067. 
1068.         substream_parity_present[substr] = checkdata_present;
1069.         substream_data_len[substr] = end - substream_start;
              ^
1070.         substream_start = end;
1071.     }

libavcodec/mlpdec.c:1145:24: Call
1143.                        "Substream %d parity check failed.\n", substr);
1144. 
1145.             checksum = mlp_checksum8(buf, substream_data_len[substr] - 2);
                             ^
1146.             if (checksum != get_bits(&gb, 8))
1147.                 av_log(m->avctx, AV_LOG_ERROR, "Substream %d checksum failed.\n",

libavcodec/mlpdec.c:246:1: <LHS trace>
244.  *  last element, then XOR that with the last element. */
245. 
246. static uint8_t mlp_checksum8(const uint8_t *buf, unsigned int buf_size)
     ^
247. {
248.     uint8_t checksum = av_crc(crc_63, 0x3c, buf, buf_size - 1); // crc_63[0xa2] == 0x3c

libavcodec/mlpdec.c:246:1: Parameter `buf_size`
  244.  *  last element, then XOR that with the last element. */
  245. 
  246. static uint8_t mlp_checksum8(const uint8_t *buf, unsigned int buf_size)
       ^
  247. {
  248.     uint8_t checksum = av_crc(crc_63, 0x3c, buf, buf_size - 1); // crc_63[0xa2] == 0x3c

libavcodec/mlpdec.c:248:24: Binary operation: ([0, 8182] - 1):unsigned32 by call to `mlp_checksum8` 
  246. static uint8_t mlp_checksum8(const uint8_t *buf, unsigned int buf_size)
  247. {
  248.     uint8_t checksum = av_crc(crc_63, 0x3c, buf, buf_size - 1); // crc_63[0xa2] == 0x3c
                              ^
  249.     checksum ^= buf[buf_size-1];
  250.     return checksum;
