diff --git a/libavcodec/mpc8.c b/libavcodec/mpc8.c index 2808b58667ac8a6193e57599fbc1f83f19482342..c37cd504970d0940dbf021bfbd7f3f46646f83c1 100644 --- a/libavcodec/mpc8.c +++ b/libavcodec/mpc8.c @@ -127,8 +127,10 @@ static av_cold int mpc8_decode_init(AVCodecContext * avctx) skip_bits(&gb, 3);//sample rate c->maxbands = get_bits(&gb, 5) + 1; - if (c->maxbands >= BANDS) + if (c->maxbands >= BANDS) { + av_log(avctx,AV_LOG_ERROR, "maxbands %d too high\n", c->maxbands); return AVERROR_INVALIDDATA; + } channels = get_bits(&gb, 4) + 1; if (channels > 2) { av_log_missing_feature(avctx, "Multichannel MPC SV8", 1); @@ -272,8 +274,10 @@ static int mpc8_decode_frame(AVCodecContext * avctx, void *data, maxband = c->last_max_band + get_vlc2(gb, band_vlc.table, MPC8_BANDS_BITS, 2); if(maxband > 32) maxband -= 33; } - if(maxband >= BANDS) + if(maxband >= BANDS) { + av_log(avctx, AV_LOG_ERROR, "maxband %d too large\n",maxband); return AVERROR_INVALIDDATA; + } c->last_max_band = maxband; /* read subband indexes */