Browse Source

pcm-mpeg: Check for valid bps.

The code only supports 16 and 24 bps currently, 20bps causes
out of array reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n0.11
Michael Niedermayer 13 years ago
parent
commit
cd0cfdc0a7
1 changed files with 2 additions and 2 deletions
  1. +2
    -2
      libavcodec/pcm-mpeg.c

+ 2
- 2
libavcodec/pcm-mpeg.c View File

@@ -69,8 +69,8 @@ static int pcm_bluray_parse_header(AVCodecContext *avctx,


/* get the sample depth and derive the sample format from it */ /* get the sample depth and derive the sample format from it */
avctx->bits_per_coded_sample = bits_per_samples[header[3] >> 6]; avctx->bits_per_coded_sample = bits_per_samples[header[3] >> 6];
if (!avctx->bits_per_coded_sample) {
av_log(avctx, AV_LOG_ERROR, "unsupported sample depth (0)\n");
if (avctx->bits_per_coded_sample == 16 || avctx->bits_per_coded_sample == 24) {
av_log(avctx, AV_LOG_ERROR, "unsupported sample depth (%d)\n", avctx->bits_per_coded_sample);
return -1; return -1;
} }
avctx->sample_fmt = avctx->bits_per_coded_sample == 16 ? AV_SAMPLE_FMT_S16 : avctx->sample_fmt = avctx->bits_per_coded_sample == 16 ? AV_SAMPLE_FMT_S16 :


Loading…
Cancel
Save