diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-08-18 02:20:54 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-08-26 04:51:06 +0200 |
commit | 5d3cd041fcb8ec0811c5d6e3b28b7a67e3f528f8 (patch) | |
tree | cccfdd6b182c4b4e7c039036af64931bcf84ed4e | |
parent | 9865f19f15ba05b87c58027b81c2edc193cb283b (diff) | |
download | ffmpeg-5d3cd041fcb8ec0811c5d6e3b28b7a67e3f528f8.tar.gz |
avformat/matroskadec: check out_samplerate before using it in av_rescale()
Prevent assertion failure with damaged input
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 338f8b2eaf36f078eb5cc26ac10e651dc4c48243)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavformat/matroskadec.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 2590a71481..aea5fe44d8 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -1689,6 +1689,8 @@ static int matroska_read_header(AVFormatContext *s) avio_wl16(&b, 1); avio_wl16(&b, track->audio.channels); avio_wl16(&b, track->audio.bitdepth); + if (track->audio.out_samplerate < 0 || track->audio.out_samplerate > INT_MAX) + return AVERROR_INVALIDDATA; avio_wl32(&b, track->audio.out_samplerate); avio_wl32(&b, av_rescale((matroska->duration * matroska->time_scale), track->audio.out_samplerate, AV_TIME_BASE * 1000)); } else if (codec_id == AV_CODEC_ID_RV10 || codec_id == AV_CODEC_ID_RV20 || |