[FFmpeg-cvslog] pcm-mpeg: Check for valid bps.

Michael Niedermayer git at videolan.org
Sun Mar 4 00:32:58 CET 2012


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sat Mar  3 23:55:16 2012 +0100| [cd0cfdc0a74cbf45f0d00b65faaf3cf5bd93c016] | committer: Michael Niedermayer

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 at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=cd0cfdc0a74cbf45f0d00b65faaf3cf5bd93c016
---

 libavcodec/pcm-mpeg.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavcodec/pcm-mpeg.c b/libavcodec/pcm-mpeg.c
index b941773..934b3bd 100644
--- a/libavcodec/pcm-mpeg.c
+++ b/libavcodec/pcm-mpeg.c
@@ -69,8 +69,8 @@ static int pcm_bluray_parse_header(AVCodecContext *avctx,
 
     /* get the sample depth and derive the sample format from it */
     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;
     }
     avctx->sample_fmt = avctx->bits_per_coded_sample == 16 ? AV_SAMPLE_FMT_S16 :



More information about the ffmpeg-cvslog mailing list